diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-02-06 14:29:11 +0100 |
---|---|---|
committer | Jose Bollo <jose.bollo@iot.bzh> | 2019-02-06 14:29:11 +0100 |
commit | 48e894bee732315d89eb5b46d2432ed45fc81a43 (patch) | |
tree | 791f2fd10272de0ddab18c66434bf42b91d4a81a | |
parent | 9f24684ab10cd3e90982721e3bc24611c7e1b348 (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.c | 5 |
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"; |