diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2013-09-08 12:46:20 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2013-09-08 12:46:20 +0200 |
commit | c3e4d0cf3f1fd24164e0a58db23b86b56c6dc7c8 (patch) | |
tree | 047d8f1a255b377026cdb8717a22d253401e3540 /cint_array.c | |
parent | 0b8ef2cbc3e72b40046cd07f56e1cffb27690827 (diff) | |
download | egawk-c3e4d0cf3f1fd24164e0a58db23b86b56c6dc7c8.tar.gz egawk-c3e4d0cf3f1fd24164e0a58db23b86b56c6dc7c8.tar.bz2 egawk-c3e4d0cf3f1fd24164e0a58db23b86b56c6dc7c8.zip |
Fixes based on problems from a static checker.
Diffstat (limited to 'cint_array.c')
-rw-r--r-- | cint_array.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/cint_array.c b/cint_array.c index 1d34c2f7..3945e6e7 100644 --- a/cint_array.c +++ b/cint_array.c @@ -150,10 +150,14 @@ cint_array_init(NODE *symbol ATTRIBUTE_UNUSED, NODE *subs ATTRIBUTE_UNUSED) { if (symbol == NULL) { long newval; + size_t nelems = (sizeof(power_two_table) / sizeof(power_two_table[0])); /* check relevant environment variables */ if ((newval = getenv_long("NHAT")) > 1 && newval < INT32_BIT) NHAT = newval; + /* don't allow overflow off the end of the table */ + if (NHAT >= nelems) + NHAT = nelems - 2; THRESHOLD = power_two_table[NHAT + 1]; } else null_array(symbol); |