about summary refs log tree commit diff
path: root/misc
diff options
context:
space:
mode:
authorRichard Nyberg <rnyberg@murmeldjur.se>2006-02-08 16:37:32 +0000
committerRichard Nyberg <rnyberg@murmeldjur.se>2006-02-08 16:37:32 +0000
commitb0c4f58f10f547e3f3e35a321b4fd9fb6fa979d4 (patch)
tree10df94b7814519d03eab9551bc2b688463dd0d1f /misc
parentd88c65e9829e2de9556a72acd65ff8caacb7d947 (diff)
downloadbtpd-b0c4f58f10f547e3f3e35a321b4fd9fb6fa979d4.tar.gz
btpd-b0c4f58f10f547e3f3e35a321b4fd9fb6fa979d4.zip
Use strtoul to parse length of strings.
Diffstat (limited to 'misc')
-rw-r--r--misc/benc.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/misc/benc.c b/misc/benc.c
index 96fdd34..5f25769 100644
--- a/misc/benc.c
+++ b/misc/benc.c
@@ -133,18 +133,12 @@ benc_mem(const char *p, size_t *len, const char**next)
 {
     if (!benc_isstr(p))
         return NULL;
-    size_t blen = 0;
-    blen = *p - '0';
-    p++;
-    while (isdigit(*p)) {
-        blen *= 10;
-        blen += *p - '0';
-        p++;
-    }
-    assert(*p == ':');
+    char *endptr;
+    size_t blen = strtoul(p, &endptr, 10);
+    assert(*endptr == ':');
     benc_safeset(len, blen);
-    benc_safeset(next, *(p + blen + 1) == 'e' ? NULL : p + blen + 1);
-    return p + 1;
+    benc_safeset(next, *(endptr + blen + 1) == 'e' ? NULL : endptr + blen + 1);
+    return endptr + 1;
 }
 
 char *