← Commit list

d9d47c307

Eric Andersen
Eric Andersen
2002-09-30
FAILED Duration: 5s

Subject

Patch from Konstantin Isakov : In most cases, dirname returns the same argument it was given, so this code works nice, but there's one special case: when the name contains no dirname, it returns "." (stored statically in the body of itself), and we get a segfault in at

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

archival/libunarchive/data_extract_all.c+4 -3
@@ -16,9 +16,10 @@ extern void data_extract_all(archive_handle_t *archive_handle)
int res;
if (archive_handle->flags & ARCHIVE_CREATE_LEADING_DIRS) {
- char *dir = dirname(strdup(file_header->name));
- make_directory (dir, 0777, FILEUTILS_RECUR);
- }
+ char *name = strdup(file_header->name);
+ make_directory (dirname(name), 0777, FILEUTILS_RECUR);
+ free(name);
+ }
/* Create the file */
switch(file_header->mode & S_IFMT) {