← Commit list

87af49f26

Glenn L McGrath
Glenn L McGrath
2003-09-09
FAILED Duration: 88s

Subject

If a tar entry is a regualr file ending in a '/' then its really a directory. From http://www.gnu.org/manual/tar/html_node/tar_123.html REGTYPE AREGTYPE These flags represent a regular file. In order to be compatible with older versions of tar, a typeflag value of AREGTYPE should be silently rec

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/get_header_tar.c+5 -5
@@ -105,10 +105,6 @@ extern char get_header_tar(archive_handle_t *archive_handle)
} else {
file_header->name = concat_path_file(tar.formated.prefix, tar.formated.name);
}
- tmp = last_char_is(archive_handle->file_header->name, '/');
- if (tmp) {
- *tmp = '\0';
- }
file_header->mode = strtol(tar.formated.mode, NULL, 8);
file_header->uid = strtol(tar.formated.uid, NULL, 8);
@@ -126,7 +122,11 @@ extern char get_header_tar(archive_handle_t *archive_handle)
# ifdef CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY
case 0:
case '0':
- file_header->mode |= S_IFREG;
+ if (last_char_is(file_header->name, '/')) {
+ file_header->mode |= S_IFDIR;
+ } else {
+ file_header->mode |= S_IFREG;
+ }
break;
#if 0
/* hard links are detected as entries with 0 size, a link name,