image-source: Fix potential crash with slideshow

If there are no slideshow items and this function is called, it would
cause a null pointer dereference.
This commit is contained in:
jp9000 2017-08-10 21:21:58 -07:00
parent 8b315186a7
commit 00f6bbe99c

View File

@ -220,18 +220,26 @@ static bool valid_extension(const char *ext)
astrcmpi(ext, ".gif") == 0;
}
static inline bool item_valid(struct slideshow *ss)
{
return ss->files.num && ss->cur_item < ss->files.num;
}
static void do_transition(void *data, bool to_null)
{
struct slideshow *ss = data;
bool valid = item_valid(ss);
if (ss->use_cut)
if (valid && ss->use_cut)
obs_transition_set(ss->transition,
ss->files.array[ss->cur_item].source);
else if (!to_null)
else if (valid && !to_null)
obs_transition_start(ss->transition,
OBS_TRANSITION_MODE_AUTO,
ss->tr_speed,
ss->files.array[ss->cur_item].source);
else
obs_transition_start(ss->transition,
OBS_TRANSITION_MODE_AUTO,