]> git.ipfire.org Git - thirdparty/libbsd.git/commitdiff
test: Fix memory leaks in fpurge test
authorGuillem Jover <guillem@hadrons.org>
Tue, 14 Mar 2023 02:05:58 +0000 (03:05 +0100)
committerGuillem Jover <guillem@hadrons.org>
Tue, 21 Mar 2023 03:13:32 +0000 (04:13 +0100)
Warned-by: gcc -fsanitize=leak
test/fpurge.c

index be6a59365b667cb9d8d14fc1f40a608acc78c2c6..62d55da231556669edeae884a83fbd1744eb7203 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
+static int
+test_memstream(FILE *fp, size_t bufsz)
+{
+       fputs("World", fp);
+       if (fpurge(fp) < 0)
+               return 1;
+       fflush(fp);
+       if (bufsz != 0)
+               return 1;
+       return 0;
+}
+
 int
 main(int argc, char *argv[])
 {
        FILE *fp;
        char *buf = NULL;
        size_t bufsz = 0;
+       int rc;
 
        if (fpurge(NULL) == 0)
                return 1;
@@ -45,13 +58,9 @@ main(int argc, char *argv[])
        fclose(fp);
 
        fp = open_memstream(&buf, &bufsz);
-       fputs("World", fp);
-       if (fpurge(fp) < 0)
-               return 1;
-       fflush(fp);
-       if (bufsz != 0)
-               return 1;
+       rc = test_memstream(fp, bufsz);
+       fclose(fp);
        free(buf);
 
-       return 0;
+       return rc;
 }