diff options
-rw-r--r-- | Build/source/utils/README | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt | 11 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned | 161 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39-PATCHES/ChangeLog (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/ChangeLog) | 7 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39-PATCHES/TL-Changes (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/TL-Changes) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-03-warnings (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-03-warnings) | 16 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-04-TL-binary (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-04-TL-binary) | 24 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt | 11 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/INSTALL (renamed from Build/source/utils/t1utils/t1utils-1.38/INSTALL) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/Makefile.am (renamed from Build/source/utils/t1utils/t1utils-1.38/Makefile.am) | 4 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/NEWS (renamed from Build/source/utils/t1utils/t1utils-1.38/NEWS) | 6 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/README (renamed from Build/source/utils/t1utils/t1utils-1.38/README) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/clp.c (renamed from Build/source/utils/t1utils/t1utils-1.38/clp.c) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/config.h.in (renamed from Build/source/utils/t1utils/t1utils-1.38/config.h.in) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/configure.ac (renamed from Build/source/utils/t1utils/t1utils-1.38/configure.ac) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/include/lcdf/clp.h (renamed from Build/source/utils/t1utils/t1utils-1.38/include/lcdf/clp.h) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/include/lcdf/inttypes.h (renamed from Build/source/utils/t1utils/t1utils-1.38/include/lcdf/inttypes.h) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1ascii.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1ascii.1) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1ascii.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1ascii.c) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1asm.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1asm.1) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1asm.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1asm.c) | 42 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h | 48 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1binary.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1binary.1) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1binary.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1binary.c) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1disasm.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1disasm.1) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1disasm.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1disasm.c) | 43 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1lib.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1lib.c) | 34 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1lib.h (renamed from Build/source/utils/t1utils/t1utils-1.38/t1lib.h) | 0 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1mac.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1mac.1) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1mac.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1mac.c) | 11 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1unmac.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1unmac.1) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1unmac.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1unmac.c) | 2 | ||||
-rw-r--r-- | Build/source/utils/t1utils/t1utils-1.39/t1utils.spec (renamed from Build/source/utils/t1utils/t1utils-1.38/t1utils.spec) | 4 | ||||
-rw-r--r-- | Build/source/utils/t1utils/version.ac | 2 |
35 files changed, 160 insertions, 293 deletions
diff --git a/Build/source/utils/README b/Build/source/utils/README index 56d44737c5d..c4f84c61cba 100644 --- a/Build/source/utils/README +++ b/Build/source/utils/README @@ -23,7 +23,7 @@ pmx 2.7.0 - checked 25nov14 ps2eps 1.68 - checked 10may12 http://tm.uka.de/~bless/ps2eps -t1utils 1.38 - checked 3oct13 +t1utils 1.39 - checked 1mar15 http://www.lcdf.org/type/ texdoctk - reluctantly maintained here in TL diff --git a/Build/source/utils/t1utils/ChangeLog b/Build/source/utils/t1utils/ChangeLog index 85a6ac202c7..5de976370c5 100644 --- a/Build/source/utils/t1utils/ChangeLog +++ b/Build/source/utils/t1utils/ChangeLog @@ -1,3 +1,8 @@ +2015-03-01 Peter Breitenlohner <peb@mppmu.mpg.de> + + Import t1utils-1.39. + * version.ac: Adjust. + 2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de> * Makefile.am: Use the fragment ../../am/dist_hook.am. diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt b/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt deleted file mode 100644 index 58d6bd3010a..00000000000 --- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur t1utils-1.38.orig/t1unmac.c t1utils-1.38/t1unmac.c ---- t1utils-1.38.orig/t1unmac.c 2013-10-03 14:01:08.000000000 +0200 -+++ t1utils-1.38/t1unmac.c 2013-11-22 09:50:47.000000000 +0100 -@@ -41,7 +41,6 @@ - #endif - #if defined(_MSDOS) || defined(_WIN32) - # include <fcntl.h> --# include <getopt.h> - # include <io.h> - #endif - #include <stdio.h> diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned b/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned deleted file mode 100644 index c355deb6c60..00000000000 --- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned +++ /dev/null @@ -1,161 +0,0 @@ - Avoid undefined behaviour when char is signed. - -diff -ur t1utils-1.38.orig/t1asm.c t1utils-1.38/t1asm.c ---- t1utils-1.38.orig/t1asm.c 2013-09-29 15:23:22.000000000 +0200 -+++ t1utils-1.38/t1asm.c 2014-06-19 13:08:40.000000000 +0200 -@@ -273,7 +273,7 @@ - static int check_line_charstring(void) - { - char *p = line; -- while (isspace(*p)) -+ while (isspace((unsigned char)*p)) - p++; - return (*p == '/' || (p[0] == 'd' && p[1] == 'u' && p[2] == 'p')); - } -@@ -359,8 +359,8 @@ - - static int is_integer(char *string) - { -- if (isdigit(string[0]) || string[0] == '-' || string[0] == '+') { -- while (*++string && isdigit(*string)) -+ if (isdigit((unsigned char)string[0]) || string[0] == '-' || string[0] == '+') { -+ while (*++string && isdigit((unsigned char)*string)) - ; /* deliberately empty */ - if (!*string) - return 1; -@@ -738,11 +738,11 @@ - t1utils_getline(); - - if (!ever_active) { -- if (strncmp(line, "currentfile eexec", 17) == 0 && isspace(line[17])) { -+ if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) { - /* Allow arbitrary whitespace after "currentfile eexec". - Thanks to Tom Kacvinsky <tjk@ams.org> for reporting this. - Note: strlen("currentfile eexec") == 17. */ -- for (p = line + 18; isspace(*p); p++) -+ for (p = line + 18; isspace((unsigned char)*p); p++) - ; - eexec_start(p); - continue; -@@ -756,7 +756,7 @@ - if (q) { - r = cs_start; - ++q; -- while (!isspace(*q) && *q != '{') -+ while (!isspace((unsigned char)*q) && *q != '{') - *r++ = *q++; - *r = '\0'; - } -@@ -765,9 +765,9 @@ - } - - if (!active) { -- if ((p = strstr(line, "/Subrs")) && isdigit(p[7])) -+ if ((p = strstr(line, "/Subrs")) && isdigit((unsigned char)p[7])) - ever_active = active = 1; -- else if ((p = strstr(line, "/CharStrings")) && isdigit(p[13])) -+ else if ((p = strstr(line, "/CharStrings")) && isdigit((unsigned char)p[13])) - ever_active = active = 1; - } - if ((p = strstr(line, "currentfile closefile"))) { -@@ -776,7 +776,7 @@ - /* 1/3/2002 -- happy new year! -- Luc Devroye reports a failure with - some printers when `currentfile closefile' is followed by space */ - p += sizeof("currentfile closefile") - 1; -- for (q = p; isspace(*q) && *q != '\n'; q++) -+ for (q = p; isspace((unsigned char)*q) && *q != '\n'; q++) - /* nada */; - if (q == p && !*q) - error("warning: `currentfile closefile' line too long"); -diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c ---- t1utils-1.38.orig/t1disasm.c 2013-10-03 14:02:25.000000000 +0200 -+++ t1utils-1.38/t1disasm.c 2014-06-19 13:08:40.000000000 +0200 -@@ -100,7 +100,7 @@ - char *p = strstr(line, "/lenIV "); - - /* Allow lenIV to be negative. Thanks to Tom Kacvinsky <tjk@ams.org> */ -- if (p && (isdigit(p[7]) || p[7] == '+' || p[7] == '-')) { -+ if (p && (isdigit((unsigned char)p[7]) || p[7] == '+' || p[7] == '-')) { - lenIV = atoi(p + 7); - } - } -@@ -120,7 +120,7 @@ - if (q) { - r = cs_start; - ++q; -- while (!isspace(*q) && *q != '{') -+ while (!isspace((unsigned char)*q) && *q != '{') - *r++ = *q++; - *r = '\0'; - } -diff -ur t1utils-1.38.orig/t1lib.c t1utils-1.38/t1lib.c ---- t1utils-1.38.orig/t1lib.c 2013-09-29 15:23:22.000000000 +0200 -+++ t1utils-1.38/t1lib.c 2014-06-19 13:08:40.000000000 +0200 -@@ -59,7 +59,7 @@ - char *start = s; - char *t = s; - for (; *s; s++) { -- if (isspace(*s)) -+ if (isspace((unsigned char)*s)) - continue; - if (c1) { - *t++ = (hexval(c1) << 4) + hexval(*s); -@@ -136,10 +136,10 @@ - - /* now that we have the line, handle it */ - if (blocktyp == PFA_ASCII) { -- if (strncmp(line, "currentfile eexec", 17) == 0 && isspace(line[17])) { -+ if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) { - char saved_p; - /* assert(line == buffer); */ -- for (line += 18; isspace(*line); line++) -+ for (line += 18; isspace((unsigned char)*line); line++) - /* nada */; - saved_p = *line; - *line = 0; -@@ -158,12 +158,12 @@ - if (blocktyp == PFA_EEXEC_TEST) { - /* 8.Feb.2004: fix bug if first character in a binary eexec block - is 0, reported by Werner Lemberg */ -- for (; line < last && isspace(*line); line++) -+ for (; line < last && isspace((unsigned char)*line); line++) - /* nada */; - if (line == last) - continue; -- else if (last >= line + 4 && isxdigit(line[0]) && isxdigit(line[1]) -- && isxdigit(line[2]) && isxdigit(line[3])) -+ else if (last >= line + 4 && isxdigit((unsigned char)line[0]) && isxdigit((unsigned char)line[1]) -+ && isxdigit((unsigned char)line[2]) && isxdigit((unsigned char)line[3])) - blocktyp = PFA_HEX; - else - blocktyp = PFA_BINARY; -diff -ur t1utils-1.38.orig/t1mac.c t1utils-1.38/t1mac.c ---- t1utils-1.38.orig/t1mac.c 2013-09-29 15:23:22.000000000 +0200 -+++ t1utils-1.38/t1mac.c 2014-06-19 13:08:40.000000000 +0200 -@@ -370,10 +370,10 @@ - s[len-1] = '\r'; - t1mac_output_data((byte *)s, len); - if (strncmp(s, "/FontName", 9) == 0) { -- for (s += 9; isspace(*s); s++) ; -+ for (s += 9; isspace((unsigned char)*s); s++) ; - if (*s == '/') { - const char *t = ++s; -- while (*t && !isspace(*t)) t++; -+ while (*t && !isspace((unsigned char)*t)) t++; - free(font_name); - font_name = (char *)malloc(t - s + 1); - memcpy(font_name, s, t - s); -@@ -992,11 +992,11 @@ - int part = 0, len = 0; - char *x, *s; - for (x = s = font_name; *s; s++) -- if (isupper(*s) || isdigit(*s)) { -+ if (isupper((unsigned char)*s) || isdigit((unsigned char)*s)) { - *x++ = *s; - part++; - len = 1; -- } else if (islower(*s)) { -+ } else if (islower((unsigned char)*s)) { - if (len < (part <= 1 ? 5 : 3)) - *x++ = *s; - len++; diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/ChangeLog b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/ChangeLog index 5c3a503064b..74cefd25514 100644 --- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/ChangeLog +++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/ChangeLog @@ -1,3 +1,10 @@ +2015-03-01 Peter Breitenlohner <peb@mppmu.mpg.de> + + Import t1utils-1.39. + * patch-03-warnings, patch-04-TL-binary, patch-05-getopt: + Adapted. + * patch-06-unsigned (removed): Now handled in original sources. + 2014-06-19 Peter Breitenlohner <peb@mppmu.mpg.de> * patch-06-unsigned (new): Avoid undefined behaviour. diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/TL-Changes b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/TL-Changes index 88dea3a98b4..0ee328bb84f 100644 --- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/TL-Changes +++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/TL-Changes @@ -1,4 +1,4 @@ -Changes applied to the t1utils-1.38 tree as obtained from: +Changes applied to the t1utils-1.39 tree as obtained from: http://www.lcdf.org/type/ Removed: diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-03-warnings b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-03-warnings index 715505bdf42..f945094761a 100644 --- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-03-warnings +++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-03-warnings @@ -1,8 +1,8 @@ Avoid compiler warnings (gcc's -Wcast-qual). -diff -ur t1utils-1.38.orig/clp.c t1utils-1.38/clp.c ---- t1utils-1.38.orig/clp.c 2013-09-29 15:23:22.000000000 +0200 -+++ t1utils-1.38/clp.c 2013-10-03 13:53:56.000000000 +0200 +diff -ur t1utils-1.39.orig/clp.c t1utils-1.39/clp.c +--- t1utils-1.39.orig/clp.c 2014-12-11 18:20:22.000000000 +0100 ++++ t1utils-1.39/clp.c 2015-03-02 08:50:06.829885555 +0100 @@ -1075,21 +1075,27 @@ parse_int(Clp_Parser *clp, const char *arg, int complain, void *user_data) { @@ -53,10 +53,10 @@ diff -ur t1utils-1.38.orig/clp.c t1utils-1.38/clp.c if (*arg != 0 && *val == 0) return 1; else if (complain) -diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c ---- t1utils-1.38.orig/t1disasm.c 2013-09-29 15:33:53.000000000 +0200 -+++ t1utils-1.38/t1disasm.c 2013-10-03 13:53:56.000000000 +0200 -@@ -341,11 +341,11 @@ +diff -ur t1utils-1.39.orig/t1disasm.c t1utils-1.39/t1disasm.c +--- t1utils-1.39.orig/t1disasm.c 2015-02-26 21:25:22.000000000 +0100 ++++ t1utils-1.39/t1disasm.c 2015-03-02 08:50:06.000000000 +0100 +@@ -302,11 +302,11 @@ /* 23.Feb.2004 - use 'memstr', not strstr, because the strings input to eexec_line aren't null terminated! Reported by Werner Lemberg. */ @@ -72,7 +72,7 @@ diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c while (line < last && (try = memchr(line, (unsigned char)*pattern, last - line))) { if (memcmp(try, pattern, pattern_len) == 0) -@@ -440,7 +440,7 @@ +@@ -401,7 +401,7 @@ badly: a charstring definition follows "/Charstrings ... begin", ON THE SAME LINE. */ { diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-04-TL-binary b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-04-TL-binary index 9cd7584db41..2f85b052be0 100644 --- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-04-TL-binary +++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-04-TL-binary @@ -1,9 +1,9 @@ In TeX Live we treat all output files as binary. -diff -ur t1utils-1.38.orig/t1ascii.c t1utils-1.38/t1ascii.c ---- t1utils-1.38.orig/t1ascii.c 2013-09-29 15:23:22.000000000 +0200 -+++ t1utils-1.38/t1ascii.c 2013-10-03 14:01:47.000000000 +0200 -@@ -284,6 +284,7 @@ +diff -ur t1utils-1.39.orig/t1ascii.c t1utils-1.39/t1ascii.c +--- t1utils-1.39.orig/t1ascii.c 2014-12-12 19:58:33.000000000 +0100 ++++ t1utils-1.39/t1ascii.c 2015-03-02 08:52:29.000000000 +0100 +@@ -286,6 +286,7 @@ /* As we are processing a PFB (binary) input */ /* file, we must set its file mode to binary. */ _setmode(_fileno(ifp), _O_BINARY); @@ -11,10 +11,10 @@ diff -ur t1utils-1.38.orig/t1ascii.c t1utils-1.38/t1ascii.c #endif /* prepare font reader */ -diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c ---- t1utils-1.38.orig/t1disasm.c 2013-10-03 13:53:56.000000000 +0200 -+++ t1utils-1.38/t1disasm.c 2013-10-03 14:02:25.000000000 +0200 -@@ -754,6 +754,7 @@ +diff -ur t1utils-1.39.orig/t1disasm.c t1utils-1.39/t1disasm.c +--- t1utils-1.39.orig/t1disasm.c 2015-03-02 08:50:06.000000000 +0100 ++++ t1utils-1.39/t1disasm.c 2015-03-02 08:52:29.000000000 +0100 +@@ -717,6 +717,7 @@ /* As we might be processing a PFB (binary) input file, we must set its file mode to binary. */ _setmode(_fileno(ifp), _O_BINARY); @@ -22,10 +22,10 @@ diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c #endif /* prepare font reader */ -diff -ur t1utils-1.38.orig/t1unmac.c t1utils-1.38/t1unmac.c ---- t1utils-1.38.orig/t1unmac.c 2013-09-29 15:23:22.000000000 +0200 -+++ t1utils-1.38/t1unmac.c 2013-10-03 14:01:08.000000000 +0200 -@@ -654,8 +654,7 @@ +diff -ur t1utils-1.39.orig/t1unmac.c t1utils-1.39/t1unmac.c +--- t1utils-1.39.orig/t1unmac.c 2014-12-12 19:58:33.000000000 +0100 ++++ t1utils-1.39/t1unmac.c 2015-03-02 08:52:29.000000000 +0100 +@@ -656,8 +656,7 @@ _setmode(_fileno(ifp), _O_BINARY); /* If we are processing a PFB (binary) output */ /* file, we must set its file mode to binary. */ diff --git a/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt new file mode 100644 index 00000000000..3a78ff17b1d --- /dev/null +++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt @@ -0,0 +1,11 @@ +diff -ur t1utils-1.39.orig/t1unmac.c t1utils-1.39/t1unmac.c +--- t1utils-1.39.orig/t1unmac.c 2015-03-02 08:52:29.000000000 +0100 ++++ t1utils-1.39/t1unmac.c 2015-03-02 08:57:05.000000000 +0100 +@@ -41,7 +41,6 @@ + #endif + #if defined(_MSDOS) || defined(_WIN32) + # include <fcntl.h> +-# include <getopt.h> + # include <io.h> + #endif + #include <stdio.h> diff --git a/Build/source/utils/t1utils/t1utils-1.38/INSTALL b/Build/source/utils/t1utils/t1utils-1.39/INSTALL index 95d84c820fb..95d84c820fb 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/INSTALL +++ b/Build/source/utils/t1utils/t1utils-1.39/INSTALL diff --git a/Build/source/utils/t1utils/t1utils-1.38/Makefile.am b/Build/source/utils/t1utils/t1utils-1.39/Makefile.am index b294bea08ed..bf0d339b582 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/Makefile.am +++ b/Build/source/utils/t1utils/t1utils-1.39/Makefile.am @@ -9,9 +9,9 @@ t1ascii_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \ t1binary_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \ clp.c t1lib.h t1lib.c t1binary.c t1asm_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \ - clp.c t1lib.h t1lib.c t1asm.c + clp.c t1lib.h t1asmhelp.h t1lib.c t1asm.c t1disasm_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \ - clp.c t1lib.h t1lib.c t1disasm.c + clp.c t1lib.h t1asmhelp.h t1lib.c t1disasm.c t1unmac_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \ clp.c t1lib.h t1lib.c t1unmac.c t1mac_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \ diff --git a/Build/source/utils/t1utils/t1utils-1.38/NEWS b/Build/source/utils/t1utils/t1utils-1.39/NEWS index 4853e0585a1..f3ffbe0bbaf 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/NEWS +++ b/Build/source/utils/t1utils/t1utils-1.39/NEWS @@ -1,5 +1,11 @@ T1utils NEWS +Version 1.39 26.Feb.2015 + +* t1disasm: Security fixes for buffer overrun reported by Jakub Wilk + and Niels Thykier. + + Version 1.38 29.Sep.2013 * t1disasm: Fix an infinite loop on some fonts reported by Niels diff --git a/Build/source/utils/t1utils/t1utils-1.38/README b/Build/source/utils/t1utils/t1utils-1.39/README index 803b1ac7ee7..803b1ac7ee7 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/README +++ b/Build/source/utils/t1utils/t1utils-1.39/README diff --git a/Build/source/utils/t1utils/t1utils-1.38/clp.c b/Build/source/utils/t1utils/t1utils-1.39/clp.c index 3dff115733b..3dff115733b 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/clp.c +++ b/Build/source/utils/t1utils/t1utils-1.39/clp.c diff --git a/Build/source/utils/t1utils/t1utils-1.38/config.h.in b/Build/source/utils/t1utils/t1utils-1.39/config.h.in index 76389dfbfe6..76389dfbfe6 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/config.h.in +++ b/Build/source/utils/t1utils/t1utils-1.39/config.h.in diff --git a/Build/source/utils/t1utils/t1utils-1.38/configure.ac b/Build/source/utils/t1utils/t1utils-1.39/configure.ac index 3b3582b598e..96b13a35206 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/configure.ac +++ b/Build/source/utils/t1utils/t1utils-1.39/configure.ac @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([t1utils], [1.38]) +AC_INIT([t1utils], [1.39]) AC_CONFIG_SRCDIR([t1ascii.c]) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS([config.h]) diff --git a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/clp.h b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/clp.h index 1b658a17190..1b658a17190 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/clp.h +++ b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/clp.h diff --git a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/inttypes.h b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/inttypes.h index b88e9e9faf0..b88e9e9faf0 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/inttypes.h +++ b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/inttypes.h diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.1 b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.1 index 0ee3b6e5db8..5d883f99129 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.1 +++ b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.1 @@ -1,4 +1,4 @@ -.ds V 1.37 +.ds V 1.39 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.c b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.c index 046f3047af7..757ae2225a8 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.c @@ -90,6 +90,7 @@ fatal_error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); exit(1); } @@ -101,6 +102,7 @@ error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); } static void diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1asm.1 b/Build/source/utils/t1utils/t1utils-1.39/t1asm.1 index 12e79a3729c..0621a0e2585 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1asm.1 +++ b/Build/source/utils/t1utils/t1utils-1.39/t1asm.1 @@ -1,4 +1,4 @@ -.ds V 1.37 +.ds V 1.39 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1asm.c b/Build/source/utils/t1utils/t1utils-1.39/t1asm.c index 27f45f27b23..0021bf016e9 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1asm.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1asm.c @@ -66,6 +66,7 @@ #include <errno.h> #include <lcdf/clp.h> #include "t1lib.h" +#include "t1asmhelp.h" #define LINESIZE 512 @@ -90,10 +91,6 @@ static int in_eexec = 0; /* need to add 1 as space for \0 */ static char line[LINESIZE + 1]; -/* lenIV and charstring start command */ -static int lenIV = 4; -static char cs_start[10]; - /* for charstring buffering */ static byte *charstring_buf, *charstring_bp; static int charstring_bufsiz; @@ -273,7 +270,7 @@ static void eexec_start(char *string) static int check_line_charstring(void) { char *p = line; - while (isspace((unsigned char)*p)) + while (isspace((unsigned char) *p)) p++; return (*p == '/' || (p[0] == 'd' && p[1] == 'u' && p[2] == 'p')); } @@ -359,8 +356,8 @@ static int CDECL command_compare(const void *key, const void *item) static int is_integer(char *string) { - if (isdigit((unsigned char)string[0]) || string[0] == '-' || string[0] == '+') { - while (*++string && isdigit((unsigned char)*string)) + if (isdigit((unsigned char) string[0]) || string[0] == '-' || string[0] == '+') { + while (*++string && isdigit((unsigned char) *string)) ; /* deliberately empty */ if (!*string) return 1; @@ -573,6 +570,7 @@ fatal_error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); exit(1); } @@ -584,6 +582,7 @@ error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); } static void @@ -624,7 +623,7 @@ Report bugs to <ekohler@gmail.com>.\n", program_name); int main(int argc, char *argv[]) { - char *p, *q, *r; + char *p, *q; Clp_Parser *clp = Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options); @@ -738,36 +737,25 @@ particular purpose.\n"); t1utils_getline(); if (!ever_active) { - if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) { + if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char) line[17])) { /* Allow arbitrary whitespace after "currentfile eexec". Thanks to Tom Kacvinsky <tjk@ams.org> for reporting this. Note: strlen("currentfile eexec") == 17. */ - for (p = line + 18; isspace((unsigned char)*p); p++) + for (p = line + 18; isspace((unsigned char) *p); p++) ; eexec_start(p); continue; } else if (strncmp(line, "/lenIV", 6) == 0) { - lenIV = atoi(line + 6); - } else if ((p = strstr(line, "string currentfile")) - && strstr(line, "readstring")) { /* enforce `readstring' */ - /* locate the name of the charstring start command */ - *p = '\0'; /* damage line[] */ - q = strrchr(line, '/'); - if (q) { - r = cs_start; - ++q; - while (!isspace((unsigned char)*q) && *q != '{') - *r++ = *q++; - *r = '\0'; - } - *p = 's'; /* repair line[] */ + set_lenIV(line); + } else if ((p = strstr(line, "string currentfile"))) { + set_cs_start(line); } } if (!active) { - if ((p = strstr(line, "/Subrs")) && isdigit((unsigned char)p[7])) + if ((p = strstr(line, "/Subrs")) && isdigit((unsigned char) p[7])) ever_active = active = 1; - else if ((p = strstr(line, "/CharStrings")) && isdigit((unsigned char)p[13])) + else if ((p = strstr(line, "/CharStrings")) && isdigit((unsigned char) p[13])) ever_active = active = 1; } if ((p = strstr(line, "currentfile closefile"))) { @@ -776,7 +764,7 @@ particular purpose.\n"); /* 1/3/2002 -- happy new year! -- Luc Devroye reports a failure with some printers when `currentfile closefile' is followed by space */ p += sizeof("currentfile closefile") - 1; - for (q = p; isspace((unsigned char)*q) && *q != '\n'; q++) + for (q = p; isspace((unsigned char) *q) && *q != '\n'; q++) /* nada */; if (q == p && !*q) error("warning: `currentfile closefile' line too long"); diff --git a/Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h b/Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h new file mode 100644 index 00000000000..c974fc7999f --- /dev/null +++ b/Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h @@ -0,0 +1,48 @@ +#ifndef T1ASMHELP_H +#define T1ASMHELP_H + +static int lenIV = 4; + +/* If the line contains an entry of the form `/lenIV <num>' then set the global + lenIV to <num>. This indicates the number of random bytes at the beginning + of each charstring. */ + +static void +set_lenIV(const char* line) +{ + char *p = strstr(line, "/lenIV "); + + /* Allow lenIV to be negative. Thanks to Tom Kacvinsky <tjk@ams.org> */ + if (p && (isdigit((unsigned char) p[7]) || p[7] == '+' || p[7] == '-')) { + lenIV = atoi(p + 7); + } +} + + +static const char* cs_start = ""; + +static void +set_cs_start(const char* line) +{ + static int cs_start_set = 0; + char *p, *q, *r; + + if ((p = strstr(line, "string currentfile")) + && strstr(line, "readstring")) { + /* locate the name of the charstring start command */ + for (q = p; q != line && q[-1] != '/'; --q) + /* nada */; + if (q != line) { + for (r = q; r != p && !isspace((unsigned char) *r) && *r != '{'; ++r) + /* nada */; + if (cs_start_set) + free((char*) cs_start); + cs_start = p = malloc(r - q + 1); + memcpy(p, q, r - q); + p[r - q] = 0; + cs_start_set = 1; + } + } +} + +#endif diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1binary.1 b/Build/source/utils/t1utils/t1utils-1.39/t1binary.1 index 8f55e93c48d..19d04b5b161 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1binary.1 +++ b/Build/source/utils/t1utils/t1utils-1.39/t1binary.1 @@ -1,4 +1,4 @@ -.ds V 1.37 +.ds V 1.39 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1binary.c b/Build/source/utils/t1utils/t1utils-1.39/t1binary.c index e69b9ba8637..a8ca6f74fc6 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1binary.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1binary.c @@ -121,6 +121,7 @@ fatal_error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); exit(1); } @@ -132,6 +133,7 @@ error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); } diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.1 b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.1 index 4458fb46ea1..308241c91bc 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.1 +++ b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.1 @@ -1,4 +1,4 @@ -.ds V 1.37 +.ds V 1.39 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.c b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.c index 40161a7fae5..92901719e28 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.c @@ -70,6 +70,7 @@ #include <assert.h> #include <lcdf/clp.h> #include "t1lib.h" +#include "t1asmhelp.h" #ifdef __cplusplus extern "C" { @@ -78,8 +79,6 @@ extern "C" { typedef unsigned char byte; static FILE *ofp; -static int lenIV = 4; -static char cs_start[10]; static int unknown = 0; /* decryption stuff */ @@ -90,44 +89,6 @@ static uint16_t er_default = 55665; static int error_count = 0; -/* If the line contains an entry of the form `/lenIV <num>' then set the global - lenIV to <num>. This indicates the number of random bytes at the beginning - of each charstring. */ - -static void -set_lenIV(char *line) -{ - char *p = strstr(line, "/lenIV "); - - /* Allow lenIV to be negative. Thanks to Tom Kacvinsky <tjk@ams.org> */ - if (p && (isdigit((unsigned char)p[7]) || p[7] == '+' || p[7] == '-')) { - lenIV = atoi(p + 7); - } -} - -static void -set_cs_start(char *line) -{ - char *p, *q, *r; - - if ((p = strstr(line, "string currentfile"))) { - /* enforce presence of `readstring' -- 5/29/99 */ - if (!strstr(line, "readstring")) - return; - /* locate the name of the charstring start command */ - *p = '\0'; /* damage line[] */ - q = strrchr(line, '/'); - if (q) { - r = cs_start; - ++q; - while (!isspace((unsigned char)*q) && *q != '{') - *r++ = *q++; - *r = '\0'; - } - *p = 's'; /* repair line[] */ - } -} - /* Subroutine to output strings. */ static void @@ -633,6 +594,7 @@ fatal_error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); fputc('\n', stderr); + va_end(val); exit(1); } @@ -645,6 +607,7 @@ error(const char *message, ...) vfprintf(stderr, message, val); fputc('\n', stderr); error_count++; + va_end(val); } static void diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1lib.c b/Build/source/utils/t1utils/t1utils-1.39/t1lib.c index f3e5fa7e245..28df311b0ab 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1lib.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1lib.c @@ -59,7 +59,7 @@ translate_hex_string(char *s, char *saved_orphan) char *start = s; char *t = s; for (; *s; s++) { - if (isspace((unsigned char)*s)) + if (isspace((unsigned char) *s)) continue; if (c1) { *t++ = (hexval(c1) << 4) + hexval(*s); @@ -136,10 +136,10 @@ process_pfa(FILE *ifp, const char *ifp_filename, struct font_reader *fr) /* now that we have the line, handle it */ if (blocktyp == PFA_ASCII) { - if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) { + if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char) line[17])) { char saved_p; /* assert(line == buffer); */ - for (line += 18; isspace((unsigned char)*line); line++) + for (line += 18; isspace((unsigned char) *line); line++) /* nada */; saved_p = *line; *line = 0; @@ -158,12 +158,14 @@ process_pfa(FILE *ifp, const char *ifp_filename, struct font_reader *fr) if (blocktyp == PFA_EEXEC_TEST) { /* 8.Feb.2004: fix bug if first character in a binary eexec block is 0, reported by Werner Lemberg */ - for (; line < last && isspace((unsigned char)*line); line++) + for (; line < last && isspace((unsigned char) *line); line++) /* nada */; if (line == last) continue; - else if (last >= line + 4 && isxdigit((unsigned char)line[0]) && isxdigit((unsigned char)line[1]) - && isxdigit((unsigned char)line[2]) && isxdigit((unsigned char)line[3])) + else if (last >= line + 4 && isxdigit((unsigned char) line[0]) + && isxdigit((unsigned char) line[1]) + && isxdigit((unsigned char) line[2]) + && isxdigit((unsigned char) line[3])) blocktyp = PFA_HEX; else blocktyp = PFA_BINARY; @@ -244,9 +246,9 @@ void process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr) { int blocktyp = 0; - int block_len = 0; + unsigned block_len = 0; int c = 0; - int filepos = 0; + unsigned filepos = 0; int linepos = 0; char line[LINESIZE]; @@ -260,7 +262,7 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr) if (c == EOF || blocktyp == EOF) error("%s corrupted: no end-of-file marker", ifp_filename); else - error("%s corrupted: bad block marker at position %d", + error("%s corrupted: bad block marker at position %u", ifp_filename, filepos); blocktyp = PFB_DONE; } @@ -270,9 +272,9 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr) block_len = getc(ifp) & 0xFF; block_len |= (getc(ifp) & 0xFF) << 8; block_len |= (getc(ifp) & 0xFF) << 16; - block_len |= (getc(ifp) & 0xFF) << 24; + block_len |= (unsigned) (getc(ifp) & 0xFF) << 24; if (feof(ifp)) { - error("%s corrupted: bad block length at position %d", + error("%s corrupted: bad block length at position %u", ifp_filename, filepos); blocktyp = PFB_DONE; goto done; @@ -282,11 +284,11 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr) /* read the block in its entirety, in LINESIZE chunks */ while (block_len > 0) { - int rest = LINESIZE - 1 - linepos; /* leave space for '\0' */ - int n = (block_len > rest ? rest : block_len); + unsigned rest = LINESIZE - 1 - linepos; /* leave space for '\0' */ + unsigned n = (block_len > rest ? rest : block_len); int actual = fread(line + linepos, 1, n, ifp); - if (actual != n) { - error("%s corrupted: block short by %d bytes at position %d", + if (actual != (int) n) { + error("%s corrupted: block short by %u bytes at position %u", ifp_filename, block_len - actual, filepos); block_len = actual; } @@ -311,7 +313,7 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr) done: c = getc(ifp); if (c != EOF) - error("%s corrupted: data after PFB end marker at position %d", + error("%s corrupted: data after PFB end marker at position %u", ifp_filename, filepos - 2); fr->output_end(); } diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1lib.h b/Build/source/utils/t1utils/t1utils-1.39/t1lib.h index 93859fea731..93859fea731 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1lib.h +++ b/Build/source/utils/t1utils/t1utils-1.39/t1lib.h diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1mac.1 b/Build/source/utils/t1utils/t1utils-1.39/t1mac.1 index 4a759716e51..a65fdc801c5 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1mac.1 +++ b/Build/source/utils/t1utils/t1utils-1.39/t1mac.1 @@ -1,4 +1,4 @@ -.ds V 1.37 +.ds V 1.39 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1mac.c b/Build/source/utils/t1utils/t1utils-1.39/t1mac.c index 9411a89a70d..617ad0189cb 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1mac.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1mac.c @@ -370,10 +370,11 @@ t1mac_output_ascii(char *s, int len) s[len-1] = '\r'; t1mac_output_data((byte *)s, len); if (strncmp(s, "/FontName", 9) == 0) { - for (s += 9; isspace((unsigned char)*s); s++) ; + for (s += 9; isspace((unsigned char) *s); s++) + /* skip */; if (*s == '/') { const char *t = ++s; - while (*t && !isspace((unsigned char)*t)) t++; + while (*t && !isspace((unsigned char) *t)) t++; free(font_name); font_name = (char *)malloc(t - s + 1); memcpy(font_name, s, t - s); @@ -770,6 +771,7 @@ fatal_error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); exit(1); } @@ -781,6 +783,7 @@ error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); } @@ -992,11 +995,11 @@ particular purpose.\n"); int part = 0, len = 0; char *x, *s; for (x = s = font_name; *s; s++) - if (isupper((unsigned char)*s) || isdigit((unsigned char)*s)) { + if (isupper((unsigned char) *s) || isdigit((unsigned char) *s)) { *x++ = *s; part++; len = 1; - } else if (islower((unsigned char)*s)) { + } else if (islower((unsigned char) *s)) { if (len < (part <= 1 ? 5 : 3)) *x++ = *s; len++; diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.1 b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.1 index 081ec31569f..372bb74ccd8 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.1 +++ b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.1 @@ -1,4 +1,4 @@ -.ds V 1.37 +.ds V 1.39 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.c b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.c index 727e0eeb67b..feadbfac65e 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.c +++ b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.c @@ -248,6 +248,7 @@ fatal_error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); exit(1); } @@ -259,6 +260,7 @@ error(const char *message, ...) fprintf(stderr, "%s: ", program_name); vfprintf(stderr, message, val); putc('\n', stderr); + va_end(val); } static void diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1utils.spec b/Build/source/utils/t1utils/t1utils-1.39/t1utils.spec index 579e8c8e7e6..3013d8b4041 100644 --- a/Build/source/utils/t1utils/t1utils-1.38/t1utils.spec +++ b/Build/source/utils/t1utils/t1utils-1.39/t1utils.spec @@ -1,9 +1,9 @@ Summary: Programs for manipulating PostScript Type 1 fonts Name: t1utils -Version: 1.37 +Version: 1.39 Release: 1 -Source: http://www.lcdf.org/type/t1utils-1.37.tar.gz +Source: http://www.lcdf.org/type/t1utils-1.39.tar.gz URL: http://www.lcdf.org/type/ diff --git a/Build/source/utils/t1utils/version.ac b/Build/source/utils/t1utils/version.ac index 623d371c2f3..cad784836f2 100644 --- a/Build/source/utils/t1utils/version.ac +++ b/Build/source/utils/t1utils/version.ac @@ -1,5 +1,5 @@ dnl -dnl Copyright (C) 2011-2013 Peter Breitenlohner <tex-live@tug.org> +dnl Copyright (C) 2011-2015 Peter Breitenlohner <tex-live@tug.org> dnl dnl This file is free software; the copyright holder dnl gives unlimited permission to copy and/or distribute it, |