mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Failing to find an entry when doing mod_share_entry isn't a error
condition, as we look for the entry before locking the chain - thus
someone else could have legitimately deleted it.
Jeremy.
(This used to be commit bd64a291a8
)
This commit is contained in:
parent
e486d0fa03
commit
98548e188a
@ -681,6 +681,7 @@ static BOOL mod_share_mode( SMB_DEV_T dev, SMB_INO_T inode, share_mode_entry *en
|
||||
int i;
|
||||
share_mode_entry *shares;
|
||||
BOOL need_store=False;
|
||||
BOOL ret = True;
|
||||
|
||||
/* read in the existing share modes */
|
||||
dbuf = tdb_fetch(tdb, locking_key(dev, inode));
|
||||
@ -702,15 +703,15 @@ static BOOL mod_share_mode( SMB_DEV_T dev, SMB_INO_T inode, share_mode_entry *en
|
||||
if (need_store) {
|
||||
if (data->u.num_share_mode_entries == 0) {
|
||||
if (tdb_delete(tdb, locking_key(dev, inode)) == -1)
|
||||
need_store = False;
|
||||
ret = False;
|
||||
} else {
|
||||
if (tdb_store(tdb, locking_key(dev, inode), dbuf, TDB_REPLACE) == -1)
|
||||
need_store = False;
|
||||
ret = False;
|
||||
}
|
||||
}
|
||||
|
||||
SAFE_FREE(dbuf.dptr);
|
||||
return need_store;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user