Mesa (glsl2): glcpp: Fix use-after-free error from #undef directive.
Ian Romanick
idr at kemper.freedesktop.org
Wed Jul 21 00:07:47 UTC 2010
Module: Mesa
Branch: glsl2
Commit: 61ebc01dfecda0963a184e881ea966e2d92f0519
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=61ebc01dfecda0963a184e881ea966e2d92f0519
Author: Carl Worth <cworth at cworth.org>
Date: Mon Jul 19 18:02:12 2010 -0700
glcpp: Fix use-after-free error from #undef directive.
By taking advantage of the recently-added hash_table_remove function.
With this change, all existing tests are now valgrind-clean.
---
src/glsl/glcpp/glcpp-parse.y | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
index e5544fe..a2b54ef 100644
--- a/src/glsl/glcpp/glcpp-parse.y
+++ b/src/glsl/glcpp/glcpp-parse.y
@@ -202,10 +202,7 @@ control_line:
| HASH_UNDEF IDENTIFIER NEWLINE {
macro_t *macro = hash_table_find (parser->defines, $2);
if (macro) {
- /* XXX: Need hash table to support a real way
- * to remove an element rather than prefixing
- * a new node with data of NULL like this. */
- hash_table_insert (parser->defines, NULL, $2);
+ hash_table_remove (parser->defines, $2);
talloc_free (macro);
}
talloc_free ($2);
More information about the mesa-commit
mailing list