From 4e4b0799165ae7b482da7d9af656ed8878500de1 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Mon, 16 Sep 2013 22:39:37 -0700 Subject: [PATCH] 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 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68233 Reviewed-by: Chad Versace Cc: mesa-stable@lists.freedesktop.org --- src/mesa/drivers/dri/i965/brw_vs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index d5909a5f35d..f5bf5905b91 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -188,7 +188,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; } -- 2.30.2