summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--include/version.h2
-rw-r--r--utils/awk/run.c3
3 files changed, 6 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index c2d30b03..348afecb 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+20121210
+ utils/awk/run.c - prevent free of pointer still in use [cinap]
20121205
appl/cmd/mk/mksubdirs [issue 290 change suggested by powerman]
20120918
diff --git a/include/version.h b/include/version.h
index b179aa36..14453b76 100644
--- a/include/version.h
+++ b/include/version.h
@@ -1 +1 @@
-#define VERSION "Fourth Edition (20121207)"
+#define VERSION "Fourth Edition (20121210)"
diff --git a/utils/awk/run.c b/utils/awk/run.c
index a6cbb406..7c2740d2 100644
--- a/utils/awk/run.c
+++ b/utils/awk/run.c
@@ -1209,7 +1209,10 @@ Cell *split(Node **a, int nnn) /* split(a[0], a[1], a[2]); a[3] is type */
FATAL("illegal type of split");
sep = *fs;
ap = execute(a[1]); /* array name */
+ n = y->tval;
+ y->tval |= DONTFREE; /* split(a[x], a); */
freesymtab(ap);
+ y->tval = n;
dprintf( ("split: s=|%s|, a=%s, sep=|%s|\n", s, ap->nval, fs) );
ap->tval &= ~STR;
ap->tval |= ARR;