summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-12-07 22:43:43 +0000
committerAndrew Tridgell <tridge@samba.org>1998-12-07 22:43:43 +0000
commite50ab2b528a3dd176d98f95cb644fc6695c55318 (patch)
treefaf89393912e83609a797116450d83e2c527cf24 /source3
parent4447b6c79df51bebadc673449c50ffad13f75de1 (diff)
downloadsamba-e50ab2b528a3dd176d98f95cb644fc6695c55318.tar.gz
samba-e50ab2b528a3dd176d98f95cb644fc6695c55318.tar.bz2
samba-e50ab2b528a3dd176d98f95cb644fc6695c55318.zip
fixed warnings (and potential errors) due to integer overflow when
creating locking masks (This used to be commit 5e2844d5edb15de29b976d2ff077ffbe012b860c)
Diffstat (limited to 'source3')
-rw-r--r--source3/lib/util.c5
-rw-r--r--source3/smbd/open.c3
2 files changed, 5 insertions, 3 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 904b007749..e5ddda1891 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -2666,8 +2666,8 @@ BOOL fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type)
int ret;
if(lp_ole_locking_compat()) {
- SMB_OFF_T mask = ((SMB_OFF_T)0xC) << (SMB_OFF_T_BITS-4);
SMB_OFF_T mask2= ((SMB_OFF_T)0x3) << (SMB_OFF_T_BITS-4);
+ SMB_OFF_T mask = (mask2<<2);
/* make sure the count is reasonable, we might kill the lockd otherwise */
count &= ~mask;
@@ -2679,7 +2679,8 @@ BOOL fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type)
if ((offset & mask) != 0)
offset = (offset & ~mask) | (((offset & mask) >> 2) & mask2);
} else {
- SMB_OFF_T mask = ((SMB_OFF_T)0x8) << (SMB_OFF_T_BITS-4);
+ SMB_OFF_T mask2 = ((SMB_OFF_T)0x4) << (SMB_OFF_T_BITS-4);
+ SMB_OFF_T mask = (mask2<<1);
SMB_OFF_T neg_mask = ~mask;
/* interpret negative counts as large numbers */
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index dd1ece7fe1..6658b8926f 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -574,7 +574,8 @@ static void truncate_unless_locked(files_struct *fsp, connection_struct *conn, i
BOOL *share_locked)
{
if (fsp->can_write){
- SMB_OFF_T mask = ((SMB_OFF_T)0xC) << (SMB_OFF_T_BITS-4);
+ SMB_OFF_T mask2 = ((SMB_OFF_T)0x3) << (SMB_OFF_T_BITS-4);
+ SMB_OFF_T mask = (mask2<<2);
if (is_locked(fsp,conn,~mask,0,F_WRLCK)){
/* If share modes are in force for this connection we