[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug-gawk] Another typeof() related segfault
From: |
Hermann Peifer |
Subject: |
[bug-gawk] Another typeof() related segfault |
Date: |
Mon, 22 Jun 2015 20:35:22 +0200 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
Hi again,
Below another segfault, which I came across while trying to use typeof()
rather than isarray() in the walkarray.awk sample code.
It looks like numeric (integer) subscripts are handled differently
compared to string subscripts.
Hermann
$ cat test.awk
function walk_array(arr, name, i)
{
for (i in arr) {
if (typeof(arr[i]) == "array") {
walk_array(arr[i], name "[" i "]")
} else {
printf "%s[%s] = %s\n", name, i, arr[i]
}
}
}
# Works as epected
$ awk -i test.awk 'BEGIN{ a[ 1 ][ 2 ][ 3 ]="scalar"; walk_array(a, "a")}'
a[1][2][3] = scalar
# This looks broken
$ awk -i test.awk 'BEGIN{ a["x"]["y"]["z"]="scalar"; walk_array(a, "a")}'
a[x][y] =
# This one segfaults, same when walking through SYMTAB
$ awk -i test.awk 'BEGIN{ walk_array(PROCINFO, "a") }'
a[argv][0] = awk
a[argv][1] = -i
a[argv][2] = test.awk
a[argv][3] = BEGIN{ walk_array(PROCINFO, "a") }
(...)
a[identifiers][strtonum] =
a[identifiers][toupper] =
awk: test.awk:3: fatal error: internal error: segfault
Abort trap: 6
- [bug-gawk] Another typeof() related segfault,
Hermann Peifer <=