Fixed segfault on image removal with uninitialized thumbnails; fixes issue #177

This commit is contained in:
Bert Münnich 2014-10-01 20:25:36 +02:00
parent ddd028eb3e
commit 8db3191f04
2 changed files with 7 additions and 6 deletions

View File

@ -1,4 +1,4 @@
VERSION = git-20140930
VERSION = git-20141001
PREFIX = /usr/local
MANPREFIX = $(PREFIX)/share/man

11
main.c
View File

@ -177,12 +177,13 @@ void remove_file(int n, bool manual)
free((void*) files[n].name);
if (n + 1 < filecnt) {
memmove(files + n, files + n + 1, (filecnt - n - 1) * sizeof(fileinfo_t));
memmove(tns.thumbs + n, tns.thumbs + n + 1, (filecnt - n - 1) *
sizeof(thumb_t));
memset(tns.thumbs + filecnt - 1, 0, sizeof(thumb_t));
if (tns.thumbs != NULL) {
memmove(tns.thumbs + n, tns.thumbs + n + 1, (filecnt - n - 1) *
sizeof(*tns.thumbs));
memset(tns.thumbs + filecnt - 1, 0, sizeof(*tns.thumbs));
}
memmove(files + n, files + n + 1, (filecnt - n - 1) * sizeof(*files));
}
filecnt--;
if (fileidx >= filecnt)
fileidx = filecnt - 1;