aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-07-15 21:06:19 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-15 21:06:19 +0200
commit3e75758eb85777c77e5ca952583a9dd370fd5ca5 (patch)
treef097adaae08f4895af93aedb93dcfcd79e540bca /src
parent98bd861a45437b1ade7e6b74f57e5c4f0812a8f6 (diff)
Fix uninitialized read of unfinished torrents
Diffstat (limited to 'src')
-rw-r--r--src/main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 10ba396..b2f238a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -409,8 +409,10 @@ static void torrent_list_check_new_downloads_callback(int id, const char *name,
}
} else {
if(id >= unfinished_torrents->size) {
+ int prev_size = unfinished_torrents->size;
unfinished_torrents->size = id + 128;
unfinished_torrents->items = realloc_or_crash(unfinished_torrents->items, unfinished_torrents->size);
+ memset(unfinished_torrents->items + prev_size, 0, unfinished_torrents->size - prev_size);
}
unfinished_torrents->items[id] = 1;
}
@@ -434,8 +436,9 @@ static void sync_rss_html(char *rss_config_dir, char *html_config_dir, char *pro
int check_torrent_status_rate_sec = 15;
UnfinishedTorrents unfinished_torrents;
- unfinished_torrents.items = alloc_or_crash(1024);
unfinished_torrents.size = 1024;
+ unfinished_torrents.items = alloc_or_crash(unfinished_torrents.size);
+ memset(unfinished_torrents.items, 0, unfinished_torrents.size);
automedia_running = 1;
/* running is set to 0 in SIGINT signal handler (ctrl+c) */