lib:replace: Fix a memleak in test_strndup()
authorAndreas Schneider <asn@samba.org>
Thu, 22 Apr 2021 13:05:07 +0000 (15:05 +0200)
committerJeremy Allison <jra@samba.org>
Sun, 25 Apr 2021 21:17:31 +0000 (21:17 +0000)
Found by covscan

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/replace/tests/testsuite.c

index 6d87b8ed61160fc3bb742901fb9e8133fc80b78b..670ff85029d20617311f930a5b3c21f03e5e22ba 100644 (file)
@@ -264,26 +264,34 @@ static int test_setenv(void)
 static int test_strndup(void)
 {
        char *x;
+       int cmp;
+
        printf("test: strndup\n");
        x = strndup("bla", 0);
-       if (strcmp(x, "") != 0) {
+       cmp = strcmp(x, "");
+       free(x);
+       if (cmp != 0) {
                printf("failure: strndup [\ninvalid\n]\n");
                return false;
        }
-       free(x);
+
        x = strndup("bla", 2);
-       if (strcmp(x, "bl") != 0) {
+       cmp = strcmp(x, "bl");
+       free(x);
+       if (cmp != 0) {
                printf("failure: strndup [\ninvalid\n]\n");
                return false;
        }
-       free(x);
+
        x = strndup("bla", 10);
-       if (strcmp(x, "bla") != 0) {
+       cmp = strcmp(x, "bla");
+       free(x);
+       if (cmp != 0) {
                printf("failure: strndup [\ninvalid\n]\n");
                free(x);
                return false;
        }
-       free(x);
+
        printf("success: strndup\n");
        return true;
 }