From: Jose Bollo Date: Wed, 6 Feb 2019 13:29:11 +0000 (+0100) Subject: wgtpkg-zip: Ensure zip will not complain X-Git-Tag: 7.90.0~3 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-main.git;a=commitdiff_plain;h=48e894bee732315d89eb5b46d2432ed45fc81a43 wgtpkg-zip: Ensure zip will not complain The invoked program ZIP may complain that the target zip file is not valid. It happens either when it is really invalid or when it is empty. Change-Id: I8b123019175fab45c6539c1d5938656afd9c7643 Signed-off-by: Jose Bollo --- diff --git a/src/wgtpkg-zip.c b/src/wgtpkg-zip.c index ec214b1..3273426 100644 --- a/src/wgtpkg-zip.c +++ b/src/wgtpkg-zip.c @@ -58,7 +58,7 @@ static int is_valid_filename(const char *filename) if ((c < 0x1f) || ((lastsp = (c == 0x20)) && index == 0) || c == 0x7f || c == 0x3c || c == 0x3e - || c == 0x3a || c == 0x22 + || c == 0x3a || c == 0x22 || c == 0x5c || c == 0x7c || c == 0x3f || c == 0x2a || c == 0x5e || c == 0x60 || c == 0x7b || c == 0x7d || c == 0x21) @@ -263,7 +263,7 @@ static int zwr(struct zws *zws, size_t offset) ent = readdir(dir); while (ent != NULL) { len = strlen(ent->d_name); - if (ent->d_name[0] == '.' && (len == 1 || + if (ent->d_name[0] == '.' && (len == 1 || (ent->d_name[1] == '.' && len == 2))) ; else if (offset + len >= sizeof(zws->name)) { @@ -447,6 +447,7 @@ int zwrite(const char *zipfile) { const char *args[6]; + unlink(zipfile); args[0] = "zip"; args[1] = "-q"; args[2] = "-r";