From 4fcdf65ae2c00ae69f7625f26ed41f37d77b403c Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Tue, 21 Feb 2017 21:14:05 +0100 Subject: util/cutils: Let qemu_strtosz*() optionally reject trailing crap Change the qemu_strtosz() & friends to return -EINVAL when @endptr is null and the conversion doesn't consume the string completely. Matches how qemu_strtol() & friends work. Only test_qemu_strtosz_simple() passes a null @endptr. No functional change there, because its conversion consumes the string. Simplify callers that use @endptr only to fail when it doesn't point to '\0' to pass a null @endptr instead. Cc: Dr. David Alan Gilbert Cc: Eduardo Habkost (maintainer:X86) Cc: Kevin Wolf (supporter:Block layer core) Cc: Max Reitz (supporter:Block layer core) Cc: qemu-block@nongnu.org (open list:Block layer core) Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Reviewed-by: Dr. David Alan Gilbert Message-Id: <1487708048-2131-22-git-send-email-armbru@redhat.com> --- tests/test-cutils.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests') diff --git a/tests/test-cutils.c b/tests/test-cutils.c index c4437d9817..f2ecb7aecb 100644 --- a/tests/test-cutils.c +++ b/tests/test-cutils.c @@ -1510,10 +1510,16 @@ static void test_qemu_strtosz_trailing(void) g_assert_cmpint(res, ==, 123 * M_BYTE); g_assert(endptr == str + 3); + res = qemu_strtosz(str, NULL); + g_assert_cmpint(res, ==, -EINVAL); + str = "1kiB"; res = qemu_strtosz(str, &endptr); g_assert_cmpint(res, ==, 1024); g_assert(endptr == str + 2); + + res = qemu_strtosz(str, NULL); + g_assert_cmpint(res, ==, -EINVAL); } static void test_qemu_strtosz_erange(void) -- cgit v1.2.3