From 3f3f74dbc755a09c161069967fc84e860edcd262 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Sun, 3 Nov 2019 07:55:21 -0500 Subject: [PATCH] tests: Fix logic to not have possible NULL deref MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's possible that virBitmapNewString returns NULL with an error string (and not an allocation failure that would abort); however, if virBitmapToString is called with a NULL @bitmap, then it will fail in an ugly manner. So rather than have if (!map && !str) logic, split the checks for each variable. Found by Coverity Signed-off-by: John Ferlan Reviewed-by: Daniel P. Berrangé --- tests/virbitmaptest.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/virbitmaptest.c b/tests/virbitmaptest.c index 545e9272df..2808d9c880 100644 --- a/tests/virbitmaptest.c +++ b/tests/virbitmaptest.c @@ -682,9 +682,11 @@ test13(const void *opaque G_GNUC_UNUSED) for (i = 0; i < G_N_ELEMENTS(strings); i++) { map = virBitmapNewString(strings[i]); - str = virBitmapToString(map, false, true); + if (!map) + goto cleanup; - if (!map || !str) + str = virBitmapToString(map, false, true); + if (!str) goto cleanup; if (STRNEQ(strings[i], str)) {