summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2011-02-01 00:20:01 -0800
committerKenneth Graunke <kenneth@whitecape.org>2011-02-01 00:20:01 -0800
commita7d350790b4d0416117bc785aa77de52e9298a01 (patch)
treee34c744e999d1e052f9ef34dfc236ae56642898d
parent11bc8991e94e2fa6d461193a6aff47f8f94b7a47 (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.
-rw-r--r--src/glsl/glsl_parser_extras.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 2ed8b843a2..1fa209c03c 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)