diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2013-09-16 22:39:37 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2013-09-27 15:30:11 -0700 |
commit | e021b50227b4711ea7f0209e0c9fb48ecddd0092 (patch) | |
tree | 1d7d4143a657b9cdff479f1260d413d206157528 | |
parent | 3801e9a87ed350e9891771967295048e3eab209e (diff) |
i965: Fix brw_vs_prog_data_compare to actually check field members.
&a and &b are the address of the local stack variables, not the actual
structures. Instead of comparing the fields of a and b, we compared
...some stack memory.
Caught by Valgrind on Piglit's glsl-lod-bias test (among many others).
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68233
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 4e4b0799165ae7b482da7d9af656ed8878500de1)
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index 5b8173dcf0..f5cec2121a 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -204,7 +204,7 @@ brw_vs_prog_data_compare(const void *in_a, const void *in_b, /* Compare the rest of the struct. */ const unsigned offset = sizeof(struct brw_vec4_prog_data); - if (memcmp(((char *) &a) + offset, ((char *) &b) + offset, + if (memcmp(((char *) a) + offset, ((char *) b) + offset, sizeof(struct brw_vs_prog_data) - offset)) { return false; } |