Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix a crash on Android with Align2Npot2 (#8070)
* Fix a crash on Android with Align2Npot2

glGetString can be NULL. If stored in a string it triggers a SIGSEGV.
Instead do a basic strstr and verify the pointer
* Better Align2Npot2 check (+ performance)
  • Loading branch information
nerzhul committed Jan 7, 2019
1 parent 07c1c72 commit 95d4ff6
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/client/tile.cpp
Expand Up @@ -1012,13 +1012,14 @@ video::IImage * Align2Npot2(video::IImage * image,

core::dimension2d<u32> dim = image->getDimension();

std::string extensions = (char*) glGetString(GL_EXTENSIONS);

// Only GLES2 is trusted to correctly report npot support
if (get_GL_major_version() > 1 &&
extensions.find("GL_OES_texture_npot") != std::string::npos) {
// Note: we cache the boolean result. GL context will never change on Android.
static const bool hasNPotSupport = get_GL_major_version() > 1 &&
glGetString(GL_EXTENSIONS) &&
strstr(glGetString(GL_EXTENSIONS), "GL_OES_texture_npot");

if (hasNPotSupport)
return image;
}

unsigned int height = npot2(dim.Height);
unsigned int width = npot2(dim.Width);
Expand Down

0 comments on commit 95d4ff6

Please sign in to comment.