aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2021-01-01 13:34:25 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2021-01-01 13:34:25 +0100
commit9daa877d6bdc8dd470ffd86839550c54957eac73 (patch)
treefa3e2fac687674546677ca27d8592a669fc6b384
parent49fd1d69babc6945175068e8fe4c85713fe5fcdb (diff)
downloadbusybox-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.c4
-rwxr-xr-xscripts/bb_release1
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
10cd busybox || { echo "cd busybox failed"; exit 1; } 10cd busybox || { echo "cd busybox failed"; exit 1; }
11chmod -Rc u+w,a+rX,go-w .
11make release || { echo "make release failed"; exit 1; } 12make release || { echo "make release failed"; exit 1; }
12cd .. 13cd ..
13 14