svn commit: samba r10023 - in branches/tmp/vl-cluster/source:
locking smbd
vlendec at samba.org
vlendec at samba.org
Sun Sep 4 09:00:48 GMT 2005
Author: vlendec
Date: 2005-09-04 09:00:47 +0000 (Sun, 04 Sep 2005)
New Revision: 10023
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10023
Log:
Fix some uninitialized variables, and in validate_my_share_entries the check
for deferred opens is different.
Volker
Modified:
branches/tmp/vl-cluster/source/locking/locking.c
branches/tmp/vl-cluster/source/smbd/open.c
Changeset:
Modified: branches/tmp/vl-cluster/source/locking/locking.c
===================================================================
--- branches/tmp/vl-cluster/source/locking/locking.c 2005-09-04 08:17:24 UTC (rev 10022)
+++ branches/tmp/vl-cluster/source/locking/locking.c 2005-09-04 09:00:47 UTC (rev 10023)
@@ -495,6 +495,7 @@
}
data = (struct locking_data *)result.dptr;
+ ZERO_STRUCTP(data);
data->u.s.num_share_mode_entries = lck->num_share_modes;
data->u.s.delete_on_close = lck->delete_on_close;
memcpy(result.dptr + sizeof(*data), lck->share_modes,
@@ -560,7 +561,9 @@
return NULL;
}
+ lck->delete_on_close = False;
lck->num_share_modes = 0;
+ lck->share_modes = NULL;
lck->modified = False;
data = tdb_fetch(tdb, key);
Modified: branches/tmp/vl-cluster/source/smbd/open.c
===================================================================
--- branches/tmp/vl-cluster/source/smbd/open.c 2005-09-04 08:17:24 UTC (rev 10022)
+++ branches/tmp/vl-cluster/source/smbd/open.c 2005-09-04 09:00:47 UTC (rev 10023)
@@ -478,12 +478,23 @@
struct share_mode_entry *share_entry)
{
files_struct *fsp;
- int num_props = 0;
if (!procid_is_me(&share_entry->pid)) {
return;
}
+ if (is_deferred_open_entry(share_entry) &&
+ !open_was_deferred(share_entry->op_mid)) {
+ pstring str;
+ DEBUG(0, ("Got a deferred entry without a request: "
+ "PANIC: %s\n", share_mode_str(num, share_entry)));
+ smb_panic(str);
+ }
+
+ if (!is_valid_share_mode_entry(share_entry)) {
+ return;
+ }
+
fsp = file_find_dif(share_entry->dev, share_entry->inode,
share_entry->share_file_id);
if (!fsp) {
@@ -493,11 +504,8 @@
"share entry with an open file\n");
}
- num_props += is_valid_share_mode_entry(share_entry) ? 1 : 0;
- num_props += is_deferred_open_entry(share_entry) ? 1 : 0;
- num_props += is_unused_share_mode_entry(share_entry) ? 1 : 0;
-
- if (num_props != 1) {
+ if (is_deferred_open_entry(share_entry) ||
+ is_unused_share_mode_entry(share_entry)) {
goto panic;
}
More information about the samba-cvs
mailing list