bug-gawk
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]