diff options
author | Tomasz Lis <[email protected]> | 2013-07-18 14:19:38 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2013-07-18 16:03:42 -0700 |
commit | 2eed9ff2fb5b218b7b274d2989b0dbbe5fcfedef (patch) | |
tree | c3b7db63922ed8d7d51783b27f240cad3045c46f /src/glx/dri2_glx.c | |
parent | 27c8aa5cfbcf6f2ad21564dfcdabbe747c277cab (diff) |
glx: Validate the GLX_RENDER_TYPE value
Correctly handle the value of renderType in GLX context. In case of the
value being incorrect, context creation fails.
v2 (idr): indirect_create_context is just a memory allocator, so don't
validate the GLX_RENDER_TYPE there. Fixes regressions in several
GLX_ARB_create_context piglit tests.
Signed-off-by: Tomasz Lis <[email protected]>
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/glx/dri2_glx.c')
-rw-r--r-- | src/glx/dri2_glx.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 9581bff02dc..c54edacab5b 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -205,6 +205,10 @@ dri2_create_context(struct glx_screen *base, __GLXDRIconfigPrivate *config = (__GLXDRIconfigPrivate *) config_base; __DRIcontext *shared = NULL; + /* Check the renderType value */ + if (!validate_renderType_against_config(config_base, renderType)) + return NULL; + if (shareList) { /* If the shareList context is not a DRI2 context, we cannot possibly * create a DRI2 context that shares it. @@ -277,6 +281,10 @@ dri2_create_context_attribs(struct glx_screen *base, &api, &reset, error)) goto error_exit; + /* Check the renderType value */ + if (!validate_renderType_against_config(config_base, renderType)) + goto error_exit; + if (shareList) { pcp_shared = (struct dri2_context *) shareList; shared = pcp_shared->driContext; |