diff options
| author | Oleg Verych <olecom@flower.upol.cz> | 2007-10-17 12:34:03 +0800 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2007-10-17 12:34:03 +0800 |
| commit | b2e1d1f967655e4987cae4be15b64b6ed3cf2ea4 (patch) | |
| tree | 986e582315631286e8f0d87e8fe9da4d34942c7a | |
| parent | [EXEC] Fixed execing of scripts with no hash-bang (diff) | |
| download | dash-b2e1d1f967655e4987cae4be15b64b6ed3cf2ea4.tar.gz dash-b2e1d1f967655e4987cae4be15b64b6ed3cf2ea4.zip | |
[BUILTIN] Disallow completely blank strings in non-arithmetic context.
* NULL as a number argument:
olecom@deen:/mnt/debian/src/dash-0.5.3$ time src/dash tst-01.sh
test: 20: `': bad number
`' eq 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' ne 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' gt 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' ge 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' lt 0: 2 must be >1, Not A Number
test: 20: `': bad number
`' le 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' eq 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' ne 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' gt 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' ge 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' lt 0: 2 must be >1, Not A Number
/usr/bin/test: invalid integer `'
`' le 0: 2 must be >1, Not A Number
#!/usr/bin/printf This not executable script%c\n
test_arithm() {
for aop in eq ne gt ge lt le
do "$1" 0 -$aop "$NOTHING"
echo "\`' $aop 0:" $? " must be >1, Not A Number"
done
}
# opengroup.org/onlinepubs/000095399/utilites/test.html (nothing about long):
test_arithm test
test_arithm /usr/bin/test
# shend
Diffstat (limited to '')
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | src/mystring.c | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 60bdfb5..47a4bb0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2007-10-17 Oleg Verych <olecom@flower.upol.cz> + + * Disallow completely blank strings in non-arithmetic context. + 2007-10-15 Herbert Xu <herbert@gondor.apana.org.au> * Fixed execing of scripts with no hash-bang. diff --git a/src/mystring.c b/src/mystring.c index b84b7e2..8e1200a 100644 --- a/src/mystring.c +++ b/src/mystring.c @@ -123,6 +123,13 @@ intmax_t atomax(const char *s, int base) if (errno != 0) sh_error(illnum, s); + /* + * Disallow completely blank strings in non-arithmetic (base != 0) + * contexts. + */ + if (base && (p == s)) + sh_error(illnum, s); + while (isspace((unsigned char)*p)) p++; |