summaryrefslogtreecommitdiff
path: root/source3/locking
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-06-28 09:54:41 +0200
committerStefan Metzmacher <metze@samba.org>2012-06-28 10:08:03 +0200
commitbbad8f6d72f2be5bf3556c57e06d1ae604f1be36 (patch)
treeb68b4aa05079c5a0295bdfbfee57e09ad1200a14 /source3/locking
parentc5f1ab9a886104780ee65e43a5f36a3259df60f3 (diff)
downloadsamba-bbad8f6d72f2be5bf3556c57e06d1ae604f1be36.tar.gz
samba-bbad8f6d72f2be5bf3556c57e06d1ae604f1be36.tar.bz2
samba-bbad8f6d72f2be5bf3556c57e06d1ae604f1be36.zip
s3:brlock: s/int/uint64_t for fnum
fsp->fnum and lock->fnum are uint64_t already and we should not truncate the value here. Currently this doesn't matter as we only use 16-bit. But as 'int' is int32_t and we later compare fnum with lock->fnum == fnum, the cast from int32_t to uint64_t goes via int64_t instead of uint32_t. This means even if fsp->fnum just uses 32-bit of the uint64_t we'll get the wrong result, as the implicit cast from a negative int32_t value to uint64_t adds 0xFFFFFFFF00000000. metze
Diffstat (limited to 'source3/locking')
-rw-r--r--source3/locking/brlock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c
index c70edec893..efde59952e 100644
--- a/source3/locking/brlock.c
+++ b/source3/locking/brlock.c
@@ -1487,7 +1487,7 @@ void brl_close_fnum(struct messaging_context *msg_ctx,
{
files_struct *fsp = br_lck->fsp;
uint32_t tid = fsp->conn->cnum;
- int fnum = fsp->fnum;
+ uint64_t fnum = fsp->fnum;
unsigned int i;
struct lock_struct *locks = br_lck->lock_data;
struct server_id pid = messaging_server_id(fsp->conn->sconn->msg_ctx);