diff options
author | Kai Koehne <kai.koehne@digia.com> | 2014-02-18 09:00:24 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-24 12:31:54 +0100 |
commit | 921bfe58c2a41b4605fc6eae342c9a505ad6fb04 (patch) | |
tree | 421792b8a7eb92a3eb91a911b0243217dcc2a939 /src/plugins/platforms | |
parent | c05e5948a0510e00befdb15b12c49b546123ceaf (diff) |
Fix potential null pointer access in qglx
This reportedly does fix crashes when running a Qt Quick 2 application
over remote X.
Task-number: QTCREATORBUG-11207
Change-Id: I6fa82420f9d12e56e52fa8efd263bf18d868d7d8
Reviewed-by: Ville Nummela <ville.nummela@parker.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/xcb/qglxintegration.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/plugins/platforms/xcb/qglxintegration.cpp b/src/plugins/platforms/xcb/qglxintegration.cpp index f7abb4662b..ed2f685770 100644 --- a/src/plugins/platforms/xcb/qglxintegration.cpp +++ b/src/plugins/platforms/xcb/qglxintegration.cpp @@ -493,19 +493,21 @@ void QGLXContext::queryDummyContext() m_supportsThreading = true; - const char *renderer = (const char *) glGetString(GL_RENDERER); - for (int i = 0; qglx_threadedgl_blacklist_renderer[i]; ++i) { - if (strstr(renderer, qglx_threadedgl_blacklist_renderer[i]) != 0) { - m_supportsThreading = false; - break; + if (const char *renderer = (const char *) glGetString(GL_RENDERER)) { + for (int i = 0; qglx_threadedgl_blacklist_renderer[i]; ++i) { + if (strstr(renderer, qglx_threadedgl_blacklist_renderer[i]) != 0) { + m_supportsThreading = false; + break; + } } } - const char *vendor = (const char *) glGetString(GL_VENDOR); - for (int i = 0; qglx_threadedgl_blacklist_vendor[i]; ++i) { - if (strstr(vendor, qglx_threadedgl_blacklist_vendor[i]) != 0) { - m_supportsThreading = false; - break; + if (const char *vendor = (const char *) glGetString(GL_VENDOR)) { + for (int i = 0; qglx_threadedgl_blacklist_vendor[i]; ++i) { + if (strstr(vendor, qglx_threadedgl_blacklist_vendor[i]) != 0) { + m_supportsThreading = false; + break; + } } } |