diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-07-15 21:06:19 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-07-15 21:06:19 +0200 |
commit | 3e75758eb85777c77e5ca952583a9dd370fd5ca5 (patch) | |
tree | f097adaae08f4895af93aedb93dcfcd79e540bca /src | |
parent | 98bd861a45437b1ade7e6b74f57e5c4f0812a8f6 (diff) |
Fix uninitialized read of unfinished torrents
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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) */ |