aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2015-10-25 21:29:04 +0200
committerArnold D. Robbins <arnold@skeeve.com>2015-10-25 21:29:04 +0200
commit1fbfd8232d56c20045e0703f9ad59f07e5965c8a (patch)
tree1006ab0f78ffd2bbfc9ebfd1a71769d2e6782e0d
parent903fd5257ddcf8c4b7e4eead08969f3995b40a12 (diff)
downloadegawk-1fbfd8232d56c20045e0703f9ad59f07e5965c8a.tar.gz
egawk-1fbfd8232d56c20045e0703f9ad59f07e5965c8a.tar.bz2
egawk-1fbfd8232d56c20045e0703f9ad59f07e5965c8a.zip
Fix invalid write in yylex.
-rw-r--r--ChangeLog6
-rw-r--r--awkgram.c3
-rw-r--r--awkgram.y3
3 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 13468de2..7017741f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-10-25 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (yylex): Fix invalid write problems.
+ Reported by Hanno Boeck <hanno@hboeck.de>.
+ Only appeared in master. Harumph.
+
2015-10-16 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (SUBDIRS): Fix ordering so that
diff --git a/awkgram.c b/awkgram.c
index f8f80ad5..b37ee57a 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -4736,7 +4736,8 @@ yyerror(const char *m, ...)
count = strlen(mesg) + 1;
if (lexptr != NULL)
count += (lexeme - thisline) + 2;
- emalloc(buf, char *, count, "yyerror");
+ emalloc(buf, char *, count+1, "yyerror");
+ memset(buf, 0, count+1);
bp = buf;
diff --git a/awkgram.y b/awkgram.y
index 88f5e209..7805f144 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -2316,7 +2316,8 @@ yyerror(const char *m, ...)
count = strlen(mesg) + 1;
if (lexptr != NULL)
count += (lexeme - thisline) + 2;
- emalloc(buf, char *, count, "yyerror");
+ emalloc(buf, char *, count+1, "yyerror");
+ memset(buf, 0, count+1);
bp = buf;