aboutsummaryrefslogtreecommitdiffstats
path: root/str_array.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-05-12 18:38:23 +0300
committerArnold D. Robbins <arnold@skeeve.com>2016-05-12 18:38:23 +0300
commitfec6265dfb087ecc8a26a9d8917bcd05bb4b1860 (patch)
tree1951f472d48b71d92fbee21747995c43070a1c91 /str_array.c
parent7458e696b5563f64e4da81ae95f88c7f36896ab8 (diff)
downloadegawk-fec6265dfb087ecc8a26a9d8917bcd05bb4b1860.tar.gz
egawk-fec6265dfb087ecc8a26a9d8917bcd05bb4b1860.tar.bz2
egawk-fec6265dfb087ecc8a26a9d8917bcd05bb4b1860.zip
Fix array indexing to disallow numeric string.
Diffstat (limited to 'str_array.c')
-rw-r--r--str_array.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/str_array.c b/str_array.c
index db24980a..9514d515 100644
--- a/str_array.c
+++ b/str_array.c
@@ -168,6 +168,15 @@ str_lookup(NODE *symbol, NODE *subs)
subs = dupnode(subs);
}
+ /*
+ * Repeat after me: "Array indices are always strings."
+ * "Array indices are always strings."
+ * "Array indices are always strings."
+ * "Array indices are always strings."
+ * ....
+ */
+ subs->flags &= ~MAYBE_NUM;
+
getbucket(b);
b->ahnext = symbol->buckets[hash1];
symbol->buckets[hash1] = b;