summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJesus Fernandez <jesus.fernandez@qt.io>2016-04-19 10:16:42 +0200
committerJesus Fernandez <jesus.fernandez@qt.io>2017-01-23 10:38:40 +0000
commitecf025f613e5f59a8653ffd2d3d4aa6f47b668df (patch)
treee32d928acc0a9f1b0ba065e039b548a1f13851d9 /src/gui
parent00593d8e3713fb83001637d3794d26fe83bd6144 (diff)
Fix dereference before null check in QOpenGLExtensionMatcher
QOpenGLContext pointer was dereferenced before checking if it valid. Coverity-Id: 11370 Change-Id: I87d83a87d88ad7c055f3ed32096bfda036224ca9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/opengl/qopengl.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/gui/opengl/qopengl.cpp b/src/gui/opengl/qopengl.cpp
index eb08492254..384cd0bd13 100644
--- a/src/gui/opengl/qopengl.cpp
+++ b/src/gui/opengl/qopengl.cpp
@@ -64,6 +64,10 @@ typedef const GLubyte * (QOPENGLF_APIENTRYP qt_glGetStringi)(GLenum, GLuint);
QOpenGLExtensionMatcher::QOpenGLExtensionMatcher()
{
QOpenGLContext *ctx = QOpenGLContext::currentContext();
+ if (!ctx) {
+ qWarning("QOpenGLExtensionMatcher::QOpenGLExtensionMatcher: No context");
+ return;
+ }
QOpenGLFunctions *funcs = ctx->functions();
const char *extensionStr = 0;
@@ -79,19 +83,17 @@ QOpenGLExtensionMatcher::QOpenGLExtensionMatcher()
// clear error state
while (funcs->glGetError()) {}
- if (ctx) {
- qt_glGetStringi glGetStringi = (qt_glGetStringi)ctx->getProcAddress("glGetStringi");
+ qt_glGetStringi glGetStringi = (qt_glGetStringi)ctx->getProcAddress("glGetStringi");
- if (!glGetStringi)
- return;
+ if (!glGetStringi)
+ return;
- GLint numExtensions = 0;
- funcs->glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
+ GLint numExtensions = 0;
+ funcs->glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
- for (int i = 0; i < numExtensions; ++i) {
- const char *str = reinterpret_cast<const char *>(glGetStringi(GL_EXTENSIONS, i));
- m_extensions.insert(str);
- }
+ for (int i = 0; i < numExtensions; ++i) {
+ const char *str = reinterpret_cast<const char *>(glGetStringi(GL_EXTENSIONS, i));
+ m_extensions.insert(str);
}
#endif // QT_OPENGL_3
}