]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lib/strutils: make test_strutils_normalize() more robust
authorKarel Zak <kzak@redhat.com>
Tue, 15 Jun 2021 08:25:06 +0000 (10:25 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 15 Jun 2021 08:25:06 +0000 (10:25 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
lib/strutils.c

index 68b664748cfc6adaf771bb67f5db47565398ff25..ee2c8354954c8be010862cc36ee2378a19bf0998 100644 (file)
@@ -1175,26 +1175,32 @@ static int test_strutils_cmp_paths(int argc, char *argv[])
 
 static int test_strutils_normalize(int argc, char *argv[])
 {
-       unsigned char *src, *dst;
+       unsigned char *src, *dst, *org;
        size_t sz, len;
 
        if (argc < 2)
                return EXIT_FAILURE;
 
-       src =  (unsigned char *) strdup(argv[1]);
+       org = (unsigned char *) strdup(argv[1]);
+       src = (unsigned char *) strdup((char *) org);
        len = strlen((char *) src);
        dst = malloc(len + 1);
 
+       if (!org || !src || !dst)
+               goto done;
+
        /* two buffers */
        sz = __normalize_whitespace(src, len, dst, len + 1);
        printf("1: '%s' --> '%s' [sz=%zu]\n", src, dst, sz);
 
        /* one buffer */
        sz = normalize_whitespace(src);
-       printf("2: '%s' --> '%s' [sz=%zu]\n", argv[1], src, sz);
+       printf("2: '%s' --> '%s' [sz=%zu]\n", org, src, sz);
 
+done:
        free(src);
        free(dst);
+       free(org);
 
        return EXIT_SUCCESS;
 }