[git commit] unzip: -d should create the dir

Denys Vlasenko vda.linux at googlemail.com
Wed Apr 29 12:37:21 UTC 2020


commit: https://git.busybox.net/busybox/commit/?id=b9943741c26e1e597edc142066f428540d1f1207
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

The official Info-Zip unzip creates the dir if it doesn't exist.

Signed-off-by: Lauri Kasanen <cand at gmx.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/unzip.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/archival/unzip.c b/archival/unzip.c
index 8c4cb9881..d94bbabcf 100644
--- a/archival/unzip.c
+++ b/archival/unzip.c
@@ -646,8 +646,14 @@ int unzip_main(int argc, char **argv)
 	}
 
 	/* Change dir if necessary */
-	if (base_dir)
+	if (base_dir) {
+		/* -p DIR: try to create, errors don't matter.
+		 * UnZip 6.00 does no multi-level mkdir (-p DIR1/DIR2 syntax),
+		 * not using bb_make_directory() here (yet?)
+		 */
+		mkdir(base_dir, 0777);
 		xchdir(base_dir);
+	}
 
 	if (quiet <= 1) { /* not -qq */
 		if (quiet == 0) {


More information about the busybox-cvs mailing list