diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2013-04-08 20:00:30 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2013-04-12 16:24:48 -0700 |
commit | f730c210b89ab8eb2dd5f346a68d06bd05386a37 (patch) | |
tree | 6d84e6217d44cccf29b2b2aa64b8fc119565304c /src/egl/drivers | |
parent | 2cc0b3294ae0b1181bdcbca91fd68ebab374dbb2 (diff) | |
download | external_mesa3d-f730c210b89ab8eb2dd5f346a68d06bd05386a37.zip external_mesa3d-f730c210b89ab8eb2dd5f346a68d06bd05386a37.tar.gz external_mesa3d-f730c210b89ab8eb2dd5f346a68d06bd05386a37.tar.bz2 |
egl/dri2: NULL check value returned by dri2_create_surface
dri2_create_surface can fail for a variety of reasons, including bad
input data. Dereferencing the NULL pointer and crashing is not okay.
Fixes issue identified by Klocwork analysis:
Pointer 'surf' returned from call to function 'dri2_create_surface'
at line 285 may be NULL and will be dereferenced at line 291.
NOTE: This is a candidate for the stable branches.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/egl/drivers')
-rw-r--r-- | src/egl/drivers/dri2/platform_x11.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index e9ca241..ccb097f 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -284,14 +284,15 @@ dri2_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp, surf = dri2_create_surface(drv, disp, EGL_WINDOW_BIT, conf, window, attrib_list); - - /* When we first create the DRI2 drawable, its swap interval on the server - * side is 1. - */ - surf->SwapInterval = 1; - - /* Override that with a driconf-set value. */ - drv->API.SwapInterval(drv, disp, surf, dri2_dpy->default_swap_interval); + if (surf != NULL) { + /* When we first create the DRI2 drawable, its swap interval on the + * server side is 1. + */ + surf->SwapInterval = 1; + + /* Override that with a driconf-set value. */ + drv->API.SwapInterval(drv, disp, surf, dri2_dpy->default_swap_interval); + } return surf; } |