summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2022-03-25 15:50:54 +0100
committerJeremy Allison <jra@samba.org>2022-12-09 23:11:38 +0000
commit0db39fad9e7a79145146d95a1eecfe1703abfdb9 (patch)
tree989ed2313365c305b9611555cb3eaefbce4f05bd /source3/lib
parentaa8b0ef8b93b9318b4182a6c52f4685c9bb7d8d8 (diff)
downloadsamba-0db39fad9e7a79145146d95a1eecfe1703abfdb9.tar.gz
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 <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/g_lock.c4
1 files changed, 4 insertions, 0 deletions
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