]> git.proxmox.com Git - mirror_qemu.git/commit
cutils: Assert in-range base for string-to-integer conversions
authorEric Blake <eblake@redhat.com>
Thu, 6 Dec 2018 15:18:56 +0000 (09:18 -0600)
committerLaurent Vivier <laurent@vivier.eu>
Tue, 11 Dec 2018 17:28:47 +0000 (18:28 +0100)
commit53a90b97245982bf28fbd2c776f206ac25a3837c
tree700a09e69b5748a8144304cec9dcdd5dfd252af1
parent9e722ebc0668d045dc65585e96954082eafedd99
cutils: Assert in-range base for string-to-integer conversions

POSIX states that the value of endptr is unspecified if strtol()
fails with EINVAL due to an invalid base argument.  Since none of
the callers to check_strtox_error() initialized endptr, we could
end up propagating uninitialized data back to a caller on error.
However, passing an out-of-range base is already a sign of poor
programming, so let's just assert that base is in range, at which
point check_strtox_error() can be tightened to assert that it is
receiving an initialized ep that points somewhere within the
caller's original string, regardless of whether strto*() succeeded
or failed with ERANGE.

Reported-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20181206151856.77503-1-eblake@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
util/cutils.c