From f53f155f2cd4c0f37f38564f8860c20e6c937bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Higor=20Eur=C3=ADpedes?= Date: Thu, 14 Aug 2014 10:16:24 -0300 Subject: [PATCH] (Threaded video) Fix null pointer dereferences --- gfx/video_thread_wrapper.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/gfx/video_thread_wrapper.c b/gfx/video_thread_wrapper.c index a441d4b851..073c355936 100644 --- a/gfx/video_thread_wrapper.c +++ b/gfx/video_thread_wrapper.c @@ -267,9 +267,13 @@ static void thread_loop(void *data) case CMD_SET_SHADER: { - bool ret = thr->driver->set_shader(thr->driver_data, - thr->cmd_data.set_shader.type, - thr->cmd_data.set_shader.path); + bool ret = false; + + if (thr->driver->set_shader) + ret = thr->driver->set_shader(thr->driver_data, + thr->cmd_data.set_shader.type, + thr->cmd_data.set_shader.path); + thr->cmd_data.b = ret; thread_reply(thr, CMD_SET_SHADER); break; @@ -324,9 +328,10 @@ static void thread_loop(void *data) #endif case CMD_POKE_SET_FILTERING: - thr->poke->set_filtering(thr->driver_data, - thr->cmd_data.filtering.index, - thr->cmd_data.filtering.smooth); + if (thr->poke->set_filtering) + thr->poke->set_filtering(thr->driver_data, + thr->cmd_data.filtering.index, + thr->cmd_data.filtering.smooth); thread_reply(thr, CMD_POKE_SET_FILTERING); break;