Browse Source

tar: add TODO about a bug with non-writable directories on extract

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko 3 years ago
parent
commit
9daa877d6b
2 changed files with 5 additions and 0 deletions
  1. 4 0
      archival/libarchive/data_extract_all.c
  2. 1 0
      scripts/bb_release

+ 4 - 0
archival/libarchive/data_extract_all.c

@@ -159,6 +159,10 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
 		break;
 	}
 	case S_IFDIR:
+//TODO: this causes problems if tarball contains a r-xr-xr-x directory:
+// we create this directory, and then fail to create files inside it
+// (if tar xf isn't run as root).
+// GNU tar works around this by chmod-ing directories *after* all files are extracted.
 		res = mkdir(dst_name, file_header->mode);
 		if ((res != 0)
 		 && (errno != EISDIR) /* btw, Linux doesn't return this */

+ 1 - 0
scripts/bb_release

@@ -8,6 +8,7 @@
 
 #svn co svn://busybox.net/trunk/busybox
 cd busybox || { echo "cd busybox failed"; exit 1; }
+chmod -Rc u+w,a+rX,go-w .
 make release || { echo "make release failed"; exit 1; }
 cd ..