summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose Bollo <jose.bollo@iot.bzh>2019-02-06 14:29:11 +0100
committerJose Bollo <jose.bollo@iot.bzh>2019-02-06 14:29:11 +0100
commit48e894bee732315d89eb5b46d2432ed45fc81a43 (patch)
tree791f2fd10272de0ddab18c66434bf42b91d4a81a
parent9f24684ab10cd3e90982721e3bc24611c7e1b348 (diff)
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 <jose.bollo@iot.bzh>
-rw-r--r--src/wgtpkg-zip.c5
1 files changed, 3 insertions, 2 deletions
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";