aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 c96ce855..34f4897a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-02-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (set_profile_next): Allocate an extra byte at the
+ end for the NUL in case we add a sign. Thanks to Andrew Schorr
+ for making me look at this code.
+
2017-02-01 Arnold D. Robbins <arnold@skeeve.com>
* builtin.c (mbc_char_count): Remove spurious multiplies by
diff --git a/awkgram.c b/awkgram.c
index 967bd407..cccf7c12 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -8738,7 +8738,8 @@ set_profile_text(NODE *n, const char *str, size_t len)
{
if (do_pretty_print) {
// extra byte in case need to add minus sign in negate_num
- n->stptr = estrdup(str, len + 1);
+ // and another one for the \0 at the end
+ n->stptr = estrdup(str, len + 2);
n->stptr[len] = '\0';
n->stlen = len;
// Set STRCUR and n->stfmt for use when profiling
diff --git a/awkgram.y b/awkgram.y
index 21926559..946299e5 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -6310,7 +6310,8 @@ set_profile_text(NODE *n, const char *str, size_t len)
{
if (do_pretty_print) {
// extra byte in case need to add minus sign in negate_num
- n->stptr = estrdup(str, len + 1);
+ // and another one for the \0 at the end
+ n->stptr = estrdup(str, len + 2);
n->stptr[len] = '\0';
n->stlen = len;
// Set STRCUR and n->stfmt for use when profiling