From 248bf17de8a25c741393b28e75c4e5380947792c Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Sat, 24 Oct 2026 05:27:59 +0200 Subject: Use new ranged unsigned int scanner everywhere and squash some bugs along the way --- ot_sync.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'ot_sync.c') diff --git a/ot_sync.c b/ot_sync.c index d3d30fa..fa6bb8b 100644 --- a/ot_sync.c +++ b/ot_sync.c @@ -12,11 +12,11 @@ /* Libowfat */ #include "io.h" -#include "scan.h" /* Opentracker */ #include "ot_iovec.h" #include "ot_mutex.h" +#include "ot_scan.h" #include "ot_stats.h" #include "ot_sync.h" #include "trackerlogic.h" @@ -30,9 +30,9 @@ [..]: ( 20:01234567890abcdefghij16:XXXXYYYY )+ */ int add_changeset_to_tracker(uint8_t *data, size_t len) { - ot_hash *hash; - uint8_t *end = data + len; - unsigned long peer_count; + ot_hash *hash; + uint8_t *end = data + len; + uint64_t peer_count; /* We do know, that the string is \n terminated, so it can't overflow */ @@ -50,8 +50,8 @@ int add_changeset_to_tracker(uint8_t *data, size_t len) { hash = (ot_hash *)data; data += sizeof(ot_hash); - /* Scan string length indicator */ - data += (len = scan_ulong((char *)data, &peer_count)); + /* Scan string length indicator, strictly: bencode writes no leading zeros */ + data += (len = scan_udec_bencode((char *)data, &peer_count, (uint64_t)(end - data))); /* If no long was scanned, it is not divisible by 8, it is not followed by a colon or claims to need to much memory, we fail */ -- cgit v1.3