diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-07-09 11:51:25 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-07-09 11:51:25 +0000 |
commit | 05e50d2756c148a33a3a06a28ae32d677fb05cc1 (patch) | |
tree | 47beb931d9aaa6b94a3bc1ce38cb503d09cd53db /Build/source/texk/lacheck/lacheck-1.26-PATCHES | |
parent | 6ec8eb926b4f7f8eaf39117db7fdfaecfe1ba721 (diff) |
lacheck: Added the never-interactive option to prevent flex
from creating a problematic prototype for isatty()
Avoid buffer overrun for long pathnames (detected by Ken Brown)
git-svn-id: svn://tug.org/texlive/trunk@26958 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/lacheck/lacheck-1.26-PATCHES')
3 files changed, 167 insertions, 0 deletions
diff --git a/Build/source/texk/lacheck/lacheck-1.26-PATCHES/ChangeLog b/Build/source/texk/lacheck/lacheck-1.26-PATCHES/ChangeLog index 777b7804f10..71bd3392fb1 100644 --- a/Build/source/texk/lacheck/lacheck-1.26-PATCHES/ChangeLog +++ b/Build/source/texk/lacheck/lacheck-1.26-PATCHES/ChangeLog @@ -1,3 +1,14 @@ +2012-06-22 Peter Breitenlohner <peb@mppmu.mpg.de> + + * patch-06-buffer-overrun (new): Avoid buffer overrun for long + pathnames (detected by Ken Brown <kbrow1i@gmail.com>). + +2012-06-19 Peter Breitenlohner <peb@mppmu.mpg.de> + + * patch-05-never-interactive (new): Added the never-interactive + option to prevent flex from creating a problematic prototype for + isatty(). + 2010-12-10 Peter Breitenlohner <peb@mppmu.mpg.de> Patches applied to lacheck-1.26 as obtained from CTAN. diff --git a/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-05-never-interactive b/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-05-never-interactive new file mode 100644 index 00000000000..ab5773dcfeb --- /dev/null +++ b/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-05-never-interactive @@ -0,0 +1,12 @@ +diff -ur lacheck-1.26.orig/lacheck.l lacheck-1.26/lacheck.l +--- lacheck-1.26.orig/lacheck.l 2010-12-09 23:25:22.000000000 +0100 ++++ lacheck-1.26/lacheck.l 2012-06-19 15:11:14.000000000 +0200 +@@ -113,6 +113,8 @@ + * Initial distribution version. + */ + ++%option never-interactive ++ + %{ + + #include <stdio.h> diff --git a/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-06-buffer-overrun b/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-06-buffer-overrun new file mode 100644 index 00000000000..1386c338f33 --- /dev/null +++ b/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-06-buffer-overrun @@ -0,0 +1,144 @@ +diff -ur lacheck-1.26.orig/lacheck.l lacheck-1.26/lacheck.l +--- lacheck-1.26.orig/lacheck.l 2012-06-19 15:11:14.000000000 +0200 ++++ lacheck-1.26/lacheck.l 2012-06-22 11:04:33.000000000 +0200 +@@ -144,7 +144,6 @@ + #define CG_ITALIC gstack[gstackp-1].italic + #define CG_FILE gstack[gstackp-1].s_file + +-char *bg_command(char *name); + void pop(void); + void push(const char *p_name, int p_type, int p_line); + void linecount(void); +@@ -157,7 +156,6 @@ + + /* global variables */ + +-char returnval[100]; + int line_count = 1; + int warn_count = 0; + char *file_name; +@@ -962,72 +960,58 @@ + free(gstack[gstackp].s_file); + } + +-char *bg_command(char *name) ++static void print_bg_command(char *name) + { + + switch (CG_TYPE) { + + case 2: +- (void) strcpy( returnval, "\\begin{" ); +- (void) strcat( returnval, (char *) name); +- (void) strcat( returnval, "}" ); ++ printf("\\begin{%s}", name); + break; + + case 3: +- (void) strcpy( returnval, "beginning of file " ); +- (void) strcat( returnval, (char *) name); ++ printf("beginning of file %s", name); + break; + + case 4: +- (void) strcpy( returnval, "math begin " ); +- (void) strcat( returnval, (char *) name); ++ printf("math begin %s", name); + break; + + case 5: +- (void) strcpy( returnval, "display math begin " ); +- (void) strcat( returnval, (char *) name); ++ printf("display math begin %s", name); + break; + + default: +- (void) strcpy( returnval, name ); ++ printf("%s", name); + + } +- +- return ((char *)returnval); + } + +-static char *eg_command(char *name, int type) ++static void print_eg_command(char *name, int type) + { + + switch (type) { + + case 2: +- (void) strcpy( returnval, "\\end{" ); +- (void) strcat( returnval, (char *) name); +- (void) strcat( returnval, "}" ); ++ printf("\\end{%s}", name); + break; + + case 3: +- (void) strcpy( returnval, "end of file " ); +- (void) strcat( returnval, (char *) name); ++ printf("end of file %s", name); + break; + + case 4: +- (void) strcpy( returnval, "math end " ); +- (void) strcat( returnval, (char *) name); ++ printf("math end %s", name); + break; + + case 5: +- (void) strcpy( returnval, "display math end " ); +- (void) strcat( returnval, (char *) name); ++ printf("display math end %s", name); + break; + + default: +- (void) strcpy( returnval, name ); ++ printf("%s", name); + break; + } +- +- return ((char *)returnval); + } + + +@@ -1072,15 +1056,17 @@ + + void print_bad_match(char *end_command, int type) + { +- printf("\"%s\", line %d: <- unmatched \"%s\"\n", ++ printf("\"%s\", line %d: <- unmatched \"", + file_name, +- line_count, +- eg_command( end_command , type) ) ; ++ line_count); ++ print_eg_command(end_command, type); ++ printf("\"\n"); + +- printf("\"%s\", line %d: -> unmatched \"%s\"\n", ++ printf("\"%s\", line %d: -> unmatched \"", + CG_FILE, +- CG_LINE, +- bg_command( CG_NAME ) ) ; ++ CG_LINE); ++ print_bg_command(CG_NAME); ++ printf("\"\n"); + warn_count += 2; + } + +@@ -1088,10 +1074,11 @@ + { + if ( gstackp == 0 ) + { +- printf("\"%s\", line %d: \"%s\" found at top level\n", +- file_name, +- line_count, +- eg_command( end_command, type )) ; ++ printf("\"%s\", line %d: \"", ++ file_name, ++ line_count); ++ print_eg_command(end_command, type); ++ printf("\" found at top level\n"); + ++warn_count; + return(0); + } |