From e18e4494e7e87d580f803e6dd1fc4ba09929545e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Higor=20Eur=C3=ADpedes?= Date: Sat, 5 Dec 2015 18:13:13 -0300 Subject: [PATCH] (menu) Fix heap overflow Some struct video_shader fields have sizes defined by macros, menu.h and video_shader_parse.h had different values for some of them. This resulted in menu.c allocating a ~120KB struct video_shader while video_shader_parse.c tried to memset() a ~150KB. For some reason this was only triggered in 32bit environments. --- menu/menu.c | 1 - menu/menu.h | 15 +-------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/menu/menu.c b/menu/menu.c index db8f13ac32..7af6e0f6c8 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -20,7 +20,6 @@ #include "menu_cbs.h" #include "menu_display.h" #include "menu_hash.h" -#include "menu_shader.h" #include "../general.h" #include "../frontend/frontend.h" diff --git a/menu/menu.h b/menu/menu.h index 65401dba27..3b7461c2ca 100644 --- a/menu/menu.h +++ b/menu/menu.h @@ -25,24 +25,11 @@ #include #include "menu_driver.h" +#include "menu_shader.h" #include "../driver.h" #include "../input/input_driver.h" #include "../dynamic.h" -#if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL) -#ifndef HAVE_SHADER_MANAGER -#define HAVE_SHADER_MANAGER -#endif -#endif - -#ifndef GFX_MAX_PARAMETERS -#define GFX_MAX_PARAMETERS 64 -#endif - -#ifndef GFX_MAX_SHADERS -#define GFX_MAX_SHADERS 16 -#endif - #ifndef MAX_COUNTERS #define MAX_COUNTERS 64 #endif