From 0db39fad9e7a79145146d95a1eecfe1703abfdb9 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 25 Mar 2022 15:50:54 +0100 Subject: g_lock: check for zero timeout in g_lock_lock() If the record is already locked check if the requested timeout is zero and fail directly with NT_STATUS_LOCK_NOT_GRANTED. Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- source3/lib/g_lock.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source3/lib') diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index 40687f47526..3c27a63d8d5 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -1292,6 +1292,10 @@ NTSTATUS g_lock_lock(struct g_lock_ctx *ctx, TDB_DATA key, return state.status; } + if (timeval_is_zero(&timeout)) { + return NT_STATUS_LOCK_NOT_GRANTED; + } + /* * Fall back to the full g_lock_trylock logic, * g_lock_lock_simple_fn() called above only covers -- cgit v1.2.1