summaryrefslogtreecommitdiff
path: root/source3/smbd/oplock.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2006-01-27 19:54:39 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:06:16 -0500
commit6a097ab20ea54a7b090ad6e62c1538d5e5997f31 (patch)
tree92032a3036b7374968b431658d53e68b47da0e69 /source3/smbd/oplock.c
parent139acd247060841b44079f1703af0e71109ba74e (diff)
downloadsamba-6a097ab20ea54a7b090ad6e62c1538d5e5997f31.tar.gz
samba-6a097ab20ea54a7b090ad6e62c1538d5e5997f31.tar.bz2
samba-6a097ab20ea54a7b090ad6e62c1538d5e5997f31.zip
r13192: Fix up alignment issues when printing share mode
entries. Add paranioa to debug so we know when an entry is unused. Jeremy. (This used to be commit fa5fab313e3728ff49c00ca1097242039506f83e)
Diffstat (limited to 'source3/smbd/oplock.c')
-rw-r--r--source3/smbd/oplock.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index 6739d29470..234b62e8ae 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -684,6 +684,11 @@ void release_level_2_oplocks_on_change(files_struct *fsp)
don't have to do anything */
for (i=0; i<lck->num_share_modes; i++) {
struct share_mode_entry *e = &lck->share_modes[i];
+
+ if (!is_valid_share_mode_entry(e)) {
+ continue;
+ }
+
if ((e->op_type == NO_OPLOCK) &&
(e->share_file_id == fsp->file_id) &&
(e->dev == fsp->dev) &&
@@ -701,6 +706,10 @@ void release_level_2_oplocks_on_change(files_struct *fsp)
struct share_mode_entry *share_entry = &lck->share_modes[i];
char msg[MSG_SMB_SHARE_MODE_ENTRY_SIZE];
+ if (!is_valid_share_mode_entry(share_entry)) {
+ continue;
+ }
+
/*
* As there could have been multiple writes waiting at the
* lock_share_entry gate we may not be the first to