[Mesa-dev] [PATCH] glsl/test: Fix use after free in test_optpass.
Hanno Böck
hanno at hboeck.de
Wed Nov 7 08:01:42 UTC 2018
The variable state is free'd and afterwards state->error is used
as the return value, resulting in a use after free bug detected
by memory safety tools like address sanitizer.
Signed-off-by: Hanno Böck <hanno at hboeck.de>
---
src/compiler/glsl/test_optpass.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/test_optpass.cpp b/src/compiler/glsl/test_optpass.cpp
index 735129d..638ffeb 100644
--- a/src/compiler/glsl/test_optpass.cpp
+++ b/src/compiler/glsl/test_optpass.cpp
@@ -166,6 +166,7 @@ int test_optpass(int argc, char **argv)
int loop = 0;
int shader_type = GL_VERTEX_SHADER;
int quiet = 0;
+ int error;
const struct option optpass_opts[] = {
{ "input-ir", no_argument, &input_format_ir, 1 },
@@ -264,9 +265,11 @@ int test_optpass(int argc, char **argv)
printf("--\n");
}
+ error = state->error;
+
ralloc_free(state);
ralloc_free(shader);
- return state->error;
+ return error;
}
--
2.18.1
More information about the mesa-dev
mailing list