From 101791f80fdefea738421a414177899db7c76e83 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Fri, 3 Dec 2021 19:17:18 +1100 Subject: [PATCH] glamor: fix free of uninitialised pointers Attempting to run fvwm on a x61/965gm with xserver 1.21.1 with the modesetting driver on OpenBSD/amd64 would cause the xserver to reliably crash. I tracked this down to the free() calls introduced in 2906ee5e4a722138cccb3265a615da7705a52589 (d1ca47e1242b51c79cec7287f52c36c8e494706b in branch). clang also warns about this: glamor_program.c:296:13: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:290:9: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:288:9: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:277:13: warning: variable 'vs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:296:13: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:290:9: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:288:9: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] glamor_program.c:277:13: warning: variable 'fs_prog_string' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] Signed-off-by: Jonathan Gray Reviewed-by: Olivier Fourdan Fixes: 2906ee5e4 ("glamor: Fix leak in glamor_build_program()") (cherry picked from commit 5ac6319776b13f96a2b336da4b35237618a5b001) --- glamor/glamor_program.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glamor/glamor_program.c b/glamor/glamor_program.c index c51577fc3..d8ddb4c77 100644 --- a/glamor/glamor_program.c +++ b/glamor/glamor_program.c @@ -260,8 +260,8 @@ glamor_build_program(ScreenPtr screen, char *fs_vars = NULL; char *vs_vars = NULL; - char *vs_prog_string; - char *fs_prog_string; + char *vs_prog_string = NULL; + char *fs_prog_string = NULL; GLint fs_prog, vs_prog; Bool gpu_shader4 = FALSE;