]> wimlib.net Git - wimlib/commitdiff
wlfuzz: don't generate . and .. filenames
authorEric Biggers <ebiggers3@gmail.com>
Tue, 27 Dec 2016 23:24:55 +0000 (17:24 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Wed, 28 Dec 2016 04:30:52 +0000 (22:30 -0600)
src/test_support.c

index 5ec72a02828cf42777fed46ff4d343cab0d968de..6d17f3390b9d3122c689b0e82acaa050f18edc57 100644 (file)
@@ -541,6 +541,7 @@ generate_random_filename(utf16lechar name[], int max_len,
        }
        len = min(len, max_len);
 
        }
        len = min(len, max_len);
 
+retry:
        /* Generate the characters in the name. */
        for (int i = 0; i < len; i++) {
                do {
        /* Generate the characters in the name. */
        for (int i = 0; i < len; i++) {
                do {
@@ -551,6 +552,11 @@ generate_random_filename(utf16lechar name[], int max_len,
        /* Add a null terminator. */
        name[len] = cpu_to_le16('\0');
 
        /* Add a null terminator. */
        name[len] = cpu_to_le16('\0');
 
+       /* Don't generate . and .. */
+       if (name[0] == cpu_to_le16('.') &&
+           (len == 1 || (len == 2 && name[1] == cpu_to_le16('.'))))
+               goto retry;
+
        return len;
 }
 
        return len;
 }