summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/locking/posix.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source3/locking/posix.c b/source3/locking/posix.c
index 3a8b1635d8..0ff2395d60 100644
--- a/source3/locking/posix.c
+++ b/source3/locking/posix.c
@@ -517,9 +517,20 @@ static int get_windows_lock_ref_count(files_struct *fsp)
goto done;
}
- SMB_ASSERT(NT_STATUS_IS_OK(status));
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0, ("get_windows_lock_ref_count: Error fetching "
+ "lock ref count for file %s: %s\n",
+ fsp_str_dbg(fsp), nt_errstr(status)));
+ goto done;
+ }
- SMB_ASSERT(dbuf.dsize == sizeof(lock_ref_count));
+ if (dbuf.dsize != sizeof(lock_ref_count)) {
+ DEBUG(0, ("get_windows_lock_ref_count: invalid entry "
+ "in lock ref count record for file %s: "
+ "(invalid data size %u)\n",
+ fsp_str_dbg(fsp), (unsigned int)dbuf.dsize));
+ goto done;
+ }
memcpy(&lock_ref_count, dbuf.dptr, sizeof(lock_ref_count));
TALLOC_FREE(dbuf.dptr);