]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
test_utils/test_main.c: increase logfilename bf sz 2600/head
authorNicholas Vinson <nvinson234@gmail.com>
Sat, 17 May 2025 15:30:23 +0000 (11:30 -0400)
committerNicholas Vinson <nvinson234@gmail.com>
Sat, 17 May 2025 15:45:20 +0000 (11:45 -0400)
Increase logfilename buffer size from 64 to 256. This aligns the buffer
size with the size limits found in Windows and Linux.

test_utils/test_main.c

index 80d969caf9bc713eecec3e4b6058ec8370545367..f4456256c1a907656653e6321487277b53b5abe0 100644 (file)
@@ -3565,9 +3565,10 @@ test_run(int i, const char *tmpdir)
 #else
        char workdir[1024 * 2];
 #endif
-       char logfilename[64];
+       char logfilename[256];
        int failures_before = failures;
        int skips_before = skips;
+       int tmp;
        mode_t oldumask;
 
        switch (verbosity) {
@@ -3588,11 +3589,38 @@ test_run(int i, const char *tmpdir)
                exit(1);
        }
        /* Create a log file for this test. */
-       snprintf(logfilename, sizeof(logfilename), "%s.log", tests[i].name);
+       tmp = snprintf(logfilename, sizeof(logfilename), "%s.log", tests[i].name);
+       if (tmp < 0) {
+               fprintf(stderr,
+                       "ERROR can't create %s.log: %s\n",
+                       tests[i].name, strerror(errno));
+               exit(1);
+       }
+       if ((size_t)tmp >= sizeof(logfilename)) {
+               fprintf(stderr,
+                       "ERROR can't create %s.log: Name too long. "
+                               "Length %d; Max allowed length %zu\n",
+                       tests[i].name, tmp, sizeof(logfilename) - 1);
+               exit(1);
+       }
        logfile = fopen(logfilename, "w");
        fprintf(logfile, "%s\n\n", tests[i].name);
        /* Chdir() to a work dir for this specific test. */
-       snprintf(workdir, sizeof(workdir), "%s/%s", tmpdir, tests[i].name);
+       tmp = snprintf(workdir,
+               sizeof(workdir), "%s/%s", tmpdir, tests[i].name);
+       if (tmp < 0) {
+               fprintf(stderr,
+                       "ERROR can't create %s/%s: %s\n",
+                       tmpdir, tests[i].name, strerror(errno));
+               exit(1);
+       }
+       if ((size_t)tmp >= sizeof(workdir)) {
+               fprintf(stderr,
+                       "ERROR can't create %s/%s: Path too long. "
+                       "Length %d; Max allowed length %zu\n",
+                       tmpdir, tests[i].name, tmp, sizeof(workdir) - 1);
+               exit(1);
+       }
        testworkdir = workdir;
        if (!assertMakeDir(testworkdir, 0755)
            || !assertChdir(testworkdir)) {