This has the added benefit of 'gotnet' only being freed after it was possibly used in the output string. ../src/internal.h:519:27: error: ‘%s’ directive argument is null [-Werror=format-overflow=] 519 | # define fprintf(fh, ...) g_fprintf(fh, __VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../tests/sockettest.c:194:9: note: in expansion of macro ‘fprintf’ 194 | fprintf(stderr, "Expected %s, got %s\n", networkstr, gotnet); | ^~~~~~~ Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx> Reported-by: Jaroslav Suchanek <jsuchane@xxxxxxxxxx> Fixes: ba08c5932e556aa4f5101357127a6224c40e5ebe --- tests/sockettest.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/sockettest.c b/tests/sockettest.c index 3183ca523f..e9654fcebb 100644 --- a/tests/sockettest.c +++ b/tests/sockettest.c @@ -175,7 +175,7 @@ static int testMaskNetwork(const char *addrstr, { virSocketAddr addr; virSocketAddr network; - char *gotnet = NULL; + g_autofree char *gotnet = NULL; /* Intentionally fill with garbage */ memset(&network, 1, sizeof(network)); @@ -190,11 +190,9 @@ static int testMaskNetwork(const char *addrstr, return -1; if (STRNEQ(networkstr, gotnet)) { - VIR_FREE(gotnet); fprintf(stderr, "Expected %s, got %s\n", networkstr, gotnet); return -1; } - VIR_FREE(gotnet); return 0; } -- 2.26.2