summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2010-11-30 18:45:44 +0100
committerDaniel Friesel <derf@finalrewind.org>2010-11-30 18:45:44 +0100
commit9b5fac879c86ee35cb23ccf9b4e0b448fafbf69a (patch)
tree4040bca54be752b4d6b4658bdb5e51cb1ff46b74
parent8072333833f0efe0d914853a55527a670bc7f0ca (diff)
slideshow.c: Fix segfault after encountering multiple invalid images in a row
-rw-r--r--src/slideshow.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/slideshow.c b/src/slideshow.c
index 19ab6a6..de10300 100644
--- a/src/slideshow.c
+++ b/src/slideshow.c
@@ -177,6 +177,10 @@ void slideshow_change_image(winwidget winwid, int change)
gib_list *last = NULL;
int i = 0;
int jmp = 1;
+ /* We can't use filelist_len in the for loop, since that changes when we
+ * encounter invalid images.
+ */
+ int our_filelist_len = filelist_len;
char *s;
/* Without this, clicking a one-image slideshow reloads it. Not very *
@@ -197,7 +201,7 @@ void slideshow_change_image(winwidget winwid, int change)
}
/* The for loop prevents us looping infinitely */
- for (i = 0; i < filelist_len; i++) {
+ for (i = 0; i < our_filelist_len; i++) {
winwidget_free_image(winwid);
switch (change) {
case SLIDE_NEXT: