diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2021-01-01 13:34:25 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2021-01-01 13:34:25 +0100 |
commit | 9daa877d6bdc8dd470ffd86839550c54957eac73 (patch) | |
tree | fa3e2fac687674546677ca27d8592a669fc6b384 | |
parent | 49fd1d69babc6945175068e8fe4c85713fe5fcdb (diff) | |
download | busybox-w32-9daa877d6bdc8dd470ffd86839550c54957eac73.tar.gz busybox-w32-9daa877d6bdc8dd470ffd86839550c54957eac73.tar.bz2 busybox-w32-9daa877d6bdc8dd470ffd86839550c54957eac73.zip |
tar: add TODO about a bug with non-writable directories on extract
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | archival/libarchive/data_extract_all.c | 4 | ||||
-rwxr-xr-x | scripts/bb_release | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/archival/libarchive/data_extract_all.c b/archival/libarchive/data_extract_all.c index 3142405a3..049c2c156 100644 --- a/archival/libarchive/data_extract_all.c +++ b/archival/libarchive/data_extract_all.c | |||
@@ -159,6 +159,10 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle) | |||
159 | break; | 159 | break; |
160 | } | 160 | } |
161 | case S_IFDIR: | 161 | case S_IFDIR: |
162 | //TODO: this causes problems if tarball contains a r-xr-xr-x directory: | ||
163 | // we create this directory, and then fail to create files inside it | ||
164 | // (if tar xf isn't run as root). | ||
165 | // GNU tar works around this by chmod-ing directories *after* all files are extracted. | ||
162 | res = mkdir(dst_name, file_header->mode); | 166 | res = mkdir(dst_name, file_header->mode); |
163 | if ((res != 0) | 167 | if ((res != 0) |
164 | && (errno != EISDIR) /* btw, Linux doesn't return this */ | 168 | && (errno != EISDIR) /* btw, Linux doesn't return this */ |
diff --git a/scripts/bb_release b/scripts/bb_release index 2e146bf84..545440d3a 100755 --- a/scripts/bb_release +++ b/scripts/bb_release | |||
@@ -8,6 +8,7 @@ | |||
8 | 8 | ||
9 | #svn co svn://busybox.net/trunk/busybox | 9 | #svn co svn://busybox.net/trunk/busybox |
10 | cd busybox || { echo "cd busybox failed"; exit 1; } | 10 | cd busybox || { echo "cd busybox failed"; exit 1; } |
11 | chmod -Rc u+w,a+rX,go-w . | ||
11 | make release || { echo "make release failed"; exit 1; } | 12 | make release || { echo "make release failed"; exit 1; } |
12 | cd .. | 13 | cd .. |
13 | 14 | ||