summaryrefslogtreecommitdiffstats
path: root/src/bencoding.c
diff options
context:
space:
mode:
authorAnton Luka Šijanec <anton@sijanec.eu>2023-03-11 16:30:32 +0100
committerAnton Luka Šijanec <anton@sijanec.eu>2023-03-11 16:30:32 +0100
commit44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6 (patch)
tree5d09284ebedfbe4b77a81edea2d0341fc2d230fa /src/bencoding.c
parentadd included files to makefile (diff)
downloadtravnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.tar
travnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.tar.gz
travnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.tar.bz2
travnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.tar.lz
travnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.tar.xz
travnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.tar.zst
travnik-44ada6ae69bc7e49d374bba8f682a6dfeaa07ef6.zip
Diffstat (limited to 'src/bencoding.c')
-rw-r--r--src/bencoding.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bencoding.c b/src/bencoding.c
index 6e8a2a2..991ac9c 100644
--- a/src/bencoding.c
+++ b/src/bencoding.c
@@ -453,13 +453,17 @@ struct bencoding * bdecode_safe (const char * s, int len, enum benc opts, unsign
b->intvalue = strtol(s+1, &ch, 10);
b->valuelen = ch-(s+1);
b->value = malloc(b->valuelen+1);
- if (!b->value)
+ if (!b->value) {
+ free(b);
return NULL;
+ }
strncpy(b->value, s+1, b->valuelen);
b->value[b->valuelen] = '\0';
b->after = s+2+b->valuelen;
- } else
+ } else {
+ free(b);
return NULL;
+ }
break;
case 'd': /* dict */
b->type = dict;