summaryrefslogtreecommitdiff
path: root/src/version.c
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2023-02-28 14:39:09 +0200
committerTimo Teräs <timo.teras@iki.fi>2023-02-28 14:39:09 +0200
commit3df4a948a6904fca7ec9ca35e9b4e620f5bf6ded (patch)
tree5c59ce286ebf69d36a2e29a7606c4518f9509b19 /src/version.c
parent3aa99faa83d08e45eff8a5cc95c4df16fb5bd257 (diff)
downloadapk-tools-3df4a948a6904fca7ec9ca35e9b4e620f5bf6ded.tar.gz
apk-tools-3df4a948a6904fca7ec9ca35e9b4e620f5bf6ded.tar.bz2
apk-tools-3df4a948a6904fca7ec9ca35e9b4e620f5bf6ded.tar.xz
apk-tools-3df4a948a6904fca7ec9ca35e9b4e620f5bf6ded.zip
version: fix leading zero stripping
Only the leading zeroes should be ignored. Handle properly if the version component is actually zero. fixes #10880
Diffstat (limited to 'src/version.c')
-rw-r--r--src/version.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/version.c b/src/version.c
index f93e4c5..381330b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -84,7 +84,7 @@ static int64_t get_token(int *type, apk_blob_t *blob)
case TOKEN_DIGIT_OR_ZERO:
/* Leading zero digits get a special treatment */
if (blob->ptr[i] == '0') {
- while (i < blob->len && blob->ptr[i] == '0')
+ while (i+1 < blob->len && blob->ptr[i+1] == '0')
i++;
nt = TOKEN_DIGIT;
v = -i;
@@ -216,8 +216,8 @@ int apk_version_compare_blob_fuzzy(apk_blob_t a, apk_blob_t b, int fuzzy)
bv = get_token(&bt, &b);
#if 0
fprintf(stderr,
- "av=%d, at=%d, a.len=%d\n"
- "bv=%d, bt=%d, b.len=%d\n",
+ "av=%ld, at=%d, a.len=%ld\n"
+ "bv=%ld, bt=%d, b.len=%ld\n",
av, at, a.len, bv, bt, b.len);
#endif
}