about summary refs log tree commit diff
path: root/cli/btpd_if.c
diff options
context:
space:
mode:
Diffstat (limited to 'cli/btpd_if.c')
-rw-r--r--cli/btpd_if.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/cli/btpd_if.c b/cli/btpd_if.c
index c328fb6..f33851f 100644
--- a/cli/btpd_if.c
+++ b/cli/btpd_if.c
@@ -154,6 +154,7 @@ parse_btstat(const uint8_t *res, struct btstat **out)
     int i = 0;
     for (const char *tp = benc_first(tlst); tp != NULL; tp = benc_next(tp)) {
         struct tpstat *ts = &st->torrents[i];
+        ts->hash = benc_dget_mema(tp, "hash", NULL);
         ts->name = benc_dget_str(tp, "path", NULL);
         ts->state = benc_dget_int(tp, "state");
         ts->errors = benc_dget_int(tp, "errors");
@@ -175,9 +176,12 @@ parse_btstat(const uint8_t *res, struct btstat **out)
 void
 free_btstat(struct btstat *st)
 {
-    for (unsigned i = 0; i < st->ntorrents; i++)
+    for (unsigned i = 0; i < st->ntorrents; i++) {
+        if (st->torrents[i].hash != NULL)
+            free(st->torrents[i].hash);
         if (st->torrents[i].name != NULL)
             free(st->torrents[i].name);
+    }
     free(st);
 }