diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2003-06-12 13:47:16 +0000 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2003-06-12 13:47:16 +0000 |
commit | b838420fd53372e1777f7c4fe03804f28f8123db (patch) | |
tree | 667b36d2feac32ee6111e7a67f8abe8ae4b5c295 | |
parent | 24833430bc2dbea733c3b0b9ea6c6b976f95474a (diff) | |
download | busybox-w32-b838420fd53372e1777f7c4fe03804f28f8123db.tar.gz busybox-w32-b838420fd53372e1777f7c4fe03804f28f8123db.tar.bz2 busybox-w32-b838420fd53372e1777f7c4fe03804f28f8123db.zip |
Handle hard links by converting them to symlinks
-rw-r--r-- | archival/libunarchive/get_header_tar.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c index 365f464dd..e3b180748 100644 --- a/archival/libunarchive/get_header_tar.c +++ b/archival/libunarchive/get_header_tar.c | |||
@@ -120,6 +120,10 @@ extern char get_header_tar(archive_handle_t *archive_handle) | |||
120 | file_header->device = (dev_t) ((strtol(tar.formated.devmajor, NULL, 8) << 8) + | 120 | file_header->device = (dev_t) ((strtol(tar.formated.devmajor, NULL, 8) << 8) + |
121 | strtol(tar.formated.devminor, NULL, 8)); | 121 | strtol(tar.formated.devminor, NULL, 8)); |
122 | 122 | ||
123 | if (tar.formated.typeflag == '1') { | ||
124 | bb_error_msg("WARNING: Converting hard link to symlink"); | ||
125 | file_header->mode |= S_IFLNK; | ||
126 | } | ||
123 | #if defined CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY || defined CONFIG_FEATURE_TAR_GNU_EXTENSIONS | 127 | #if defined CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY || defined CONFIG_FEATURE_TAR_GNU_EXTENSIONS |
124 | /* Fix mode, used by the old format */ | 128 | /* Fix mode, used by the old format */ |
125 | switch (tar.formated.typeflag) { | 129 | switch (tar.formated.typeflag) { |
@@ -129,7 +133,7 @@ extern char get_header_tar(archive_handle_t *archive_handle) | |||
129 | file_header->mode |= S_IFREG; | 133 | file_header->mode |= S_IFREG; |
130 | break; | 134 | break; |
131 | case '1': | 135 | case '1': |
132 | bb_error_msg("Internal hard link not supported"); | 136 | // bb_error_msg("Internal hard link not supported"); |
133 | break; | 137 | break; |
134 | case '2': | 138 | case '2': |
135 | file_header->mode |= S_IFLNK; | 139 | file_header->mode |= S_IFLNK; |