nsxiv8db3191
Fixed segfault on image removal with uninitialized thumbnails; fixes issue #177
+7 −6
2 files changed
| @@ -1,4 +1,4 @@ | |||
| 1 | − | VERSION = git-20140930 | |
| 1 | + | VERSION = git-20141001 | |
| 2 | 2 | ||
| 3 | 3 | PREFIX = /usr/local | |
| 4 | 4 | MANPREFIX = $(PREFIX)/share/man | |
| @@ -177,12 +177,13 @@ void remove_file(int n, bool manual) | |||
| 177 | 177 | free((void*) files[n].name); | |
| 178 | 178 | ||
| 179 | 179 | if (n + 1 < filecnt) { | |
| 180 | − | memmove(files + n, files + n + 1, (filecnt - n - 1) * sizeof(fileinfo_t)); | |
| 181 | − | memmove(tns.thumbs + n, tns.thumbs + n + 1, (filecnt - n - 1) * | |
| 182 | − | sizeof(thumb_t)); | |
| 183 | − | memset(tns.thumbs + filecnt - 1, 0, sizeof(thumb_t)); | |
| 180 | + | if (tns.thumbs != NULL) { | |
| 181 | + | memmove(tns.thumbs + n, tns.thumbs + n + 1, (filecnt - n - 1) * | |
| 182 | + | sizeof(*tns.thumbs)); | |
| 183 | + | memset(tns.thumbs + filecnt - 1, 0, sizeof(*tns.thumbs)); | |
| 184 | + | } | |
| 185 | + | memmove(files + n, files + n + 1, (filecnt - n - 1) * sizeof(*files)); | |
| 184 | 186 | } | |
| 185 | − | ||
| 186 | 187 | filecnt--; | |
| 187 | 188 | if (fileidx >= filecnt) | |
| 188 | 189 | fileidx = filecnt - 1; | |