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:43:35 +0200
commitfd8f39f1d54c3b56d16a494898e5a753e2c71715 (patch)
treee926627298ba66b1d663b09979ecf3fa68a1fe92 /src/version.c
parent48b4565f344e0ced9d23f612f8938b861c6886a4 (diff)
downloadapk-tools-fd8f39f1d54c3b56d16a494898e5a753e2c71715.tar.gz
apk-tools-fd8f39f1d54c3b56d16a494898e5a753e2c71715.tar.bz2
apk-tools-fd8f39f1d54c3b56d16a494898e5a753e2c71715.tar.xz
apk-tools-fd8f39f1d54c3b56d16a494898e5a753e2c71715.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 4d227d0..b12cb7f 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;
@@ -206,8 +206,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
}