diff options
author | Kenneth Graunke <[email protected]> | 2011-02-01 00:20:01 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2011-02-01 00:20:01 -0800 |
commit | a7d350790b4d0416117bc785aa77de52e9298a01 (patch) | |
tree | e34c744e999d1e052f9ef34dfc236ae56642898d /src/glsl/glsl_parser_extras.cpp | |
parent | 11bc8991e94e2fa6d461193a6aff47f8f94b7a47 (diff) |
glsl: Fix memory error when creating the supported version string.
Passing ralloc_vasprintf_append a 0-byte allocation doesn't work. If
passed a non-NULL argument, ralloc calls strlen to find the end of the
string. Since there's no terminating '\0', it runs off the end.
Fixes a crash introduced in 14880a510a1a288df0778395097d5a52806abfb0.
Diffstat (limited to 'src/glsl/glsl_parser_extras.cpp')
-rw-r--r-- | src/glsl/glsl_parser_extras.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index 2ed8b843a24..1fa209c03c1 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -97,7 +97,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *ctx, ? 100 : 110; const unsigned highest_version = (ctx->API == API_OPENGL) ? ctx->Const.GLSLVersion : 100; - char *supported = (char *) ralloc_context(this); + char *supported = ralloc_strdup(this, ""); for (unsigned ver = lowest_version; ver <= highest_version; ver += 10) { const char *const prefix = (ver == lowest_version) |