summaryrefslogtreecommitdiff
path: root/Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-06-buffer-overrun
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-06-buffer-overrun')
-rw-r--r--Build/source/texk/lacheck/lacheck-1.26-PATCHES/patch-06-buffer-overrun144
1 files changed, 144 insertions, 0 deletions
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);
+ }