]> wimlib.net Git - wimlib/blobdiff - src/test_support.c
wlfuzz: don't generate . and .. filenames
[wimlib] / 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);
 
+retry:
        /* 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');
 
+       /* Don't generate . and .. */
+       if (name[0] == cpu_to_le16('.') &&
+           (len == 1 || (len == 2 && name[1] == cpu_to_le16('.'))))
+               goto retry;
+
        return len;
 }