1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-21 11:16:16 +02:00

tests: avoid potential overflows with expr

* cfg.mk (sc_prohibit_expr_unsigned): expr uses intmax_t internally
when GMP is not available, so flag any uses of unsigned limits.
* tests/misc/timeout-parameters.sh: Remove the overflow related
to UINT_MAX as it's handled by the following case.  Change the
following case from 99... to $TIME_T_OFLOW to be more expressive
in what it's actually testing.  Directly check that commands succeed,
rather than inspecting $? afterwards.
* tests/dd/skip-seek-past-dev.sh: Guard against large device sizes.
* tests/id/setgid.sh: Protect: Guard against large group IDs.
* tests/misc/cut-huge-range.sh: Tweak comment to avoid syntax check.
It's tempting to simplify to just skip the test if expr fails,
but SIZE_MAX > INTMAX_MAX is the common case.
This commit is contained in:
Pádraig Brady
2016-04-20 14:03:05 +01:00
parent 163c70d970
commit ff6cc22d06
5 changed files with 21 additions and 16 deletions

View File

@@ -39,7 +39,8 @@ dev_size=$(get_device_size "$device") ||
skip_ "failed to determine size of $device"
# Don't use shell arithmetic as older versions of dash use longs
DEV_OFLOW=$(expr $dev_size + 1)
DEV_OFLOW=$(expr $dev_size + 1) ||
skip_ "failed to adjust device size $dev_size"
timeout 10 dd bs=1 skip=$DEV_OFLOW count=0 status=noxfer < "$device" 2> err
test "$?" = "1" || fail=1