From: Volker Lendecke Date: Wed, 3 Mar 2021 18:15:31 +0000 (+0100) Subject: g_lock: Fix uninitalized variable reads X-Git-Tag: samba-4.12.12~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5dd17586cd600518c3187b4af2d4cc6167d52eb7;p=thirdparty%2Fsamba.git g_lock: Fix uninitalized variable reads If dbwrap_watched_watch_recv() returns IO_TIMEOUT, "blockerdead" might be an uninitialized non-false, and further down we'll remove the wrong exclusive locker. Bug: https://bugzilla.samba.org/show_bug.cgi?id=14636 Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Fri Mar 5 11:22:07 UTC 2021 on sn-devel-184 (cherry picked from commit 654c18a244f060d81280493a324b98602a69dbbf) Autobuild-User(v4-12-test): Karolin Seeger Autobuild-Date(v4-12-test): Mon Mar 8 08:51:39 UTC 2021 on sn-devel-184 --- diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index 4bf30188a43..c3b4b644537 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -600,8 +600,8 @@ static void g_lock_lock_retry(struct tevent_req *subreq) struct g_lock_lock_state *state = tevent_req_data( req, struct g_lock_lock_state); struct g_lock_lock_fn_state fn_state; - struct server_id blocker; - bool blockerdead; + struct server_id blocker = { .pid = 0 }; + bool blockerdead = false; NTSTATUS status; status = dbwrap_watched_watch_recv(subreq, &blockerdead, &blocker);