summaryrefslogtreecommitdiff
path: root/src/archive.c
diff options
context:
space:
mode:
authorDmitry Golovin <dima@golovin.in>2017-08-22 17:28:21 +0300
committerTimo Teräs <timo.teras@iki.fi>2017-10-06 16:19:48 +0300
commit6be1f3d5dec2bbea6a92b3fb6290a52b7d6e5d3e (patch)
tree66028e6794c080a15011c25d88be4dc28c005f2b /src/archive.c
parentcf1e0a3ac14b91a9f628e23685d9645389e730c8 (diff)
downloadapk-tools-6be1f3d5dec2bbea6a92b3fb6290a52b7d6e5d3e.tar.gz
apk-tools-6be1f3d5dec2bbea6a92b3fb6290a52b7d6e5d3e.tar.bz2
apk-tools-6be1f3d5dec2bbea6a92b3fb6290a52b7d6e5d3e.tar.xz
apk-tools-6be1f3d5dec2bbea6a92b3fb6290a52b7d6e5d3e.zip
fix comparison of unsigned expression < 0 is always false
found by clang
Diffstat (limited to 'src/archive.c')
-rw-r--r--src/archive.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/archive.c b/src/archive.c
index b1f9c30..9196cb2 100644
--- a/src/archive.c
+++ b/src/archive.c
@@ -159,8 +159,9 @@ static void handle_extended_header(struct apk_file_info *fi, apk_blob_t hdr)
unsigned int len = apk_blob_pull_uint(&hdr, 10);
apk_blob_pull_char(&hdr, ' ');
if (!apk_blob_split(hdr, APK_BLOB_STR("="), &name, &hdr)) break;
+ if (len < hdr.ptr - start + 1) break;
len -= hdr.ptr - start + 1;
- if (len < 0 || hdr.len < len) break;
+ if (hdr.len < len) break;
value = APK_BLOB_PTR_LEN(hdr.ptr, len);
hdr = APK_BLOB_PTR_LEN(hdr.ptr+len, hdr.len-len);
apk_blob_pull_char(&hdr, '\n');