diff options
author | Volker Lendecke <vl@samba.org> | 2013-03-25 14:52:24 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2013-03-26 10:11:41 +0100 |
commit | d4ebeeb78865c6a20a85437b82a1302921f3d1fe (patch) | |
tree | cbd07e747ad36f2459691490d43075beeb82e9e6 | |
parent | bbb4068c933ecc043025633a13c62bf04eaf6d49 (diff) | |
download | samba-d4ebeeb78865c6a20a85437b82a1302921f3d1fe.tar.gz samba-d4ebeeb78865c6a20a85437b82a1302921f3d1fe.tar.bz2 samba-d4ebeeb78865c6a20a85437b82a1302921f3d1fe.zip |
smbd: Avoid sending 0-sized keys to dbwrap
Start the notification one level below /. Sharing and notifying / for changes
is broken at this moment anyway. When sharing / and someone wants to get
notified for changes under /usr, we store "//usr" as the notify_index key. So
this patch does not break anything that is not broken today, and it avoids a
bogus call to dbwrap_parse_records.
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r-- | source3/smbd/notify_internal.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/smbd/notify_internal.c b/source3/smbd/notify_internal.c index eaf51e7648..f5a8584b2e 100644 --- a/source3/smbd/notify_internal.c +++ b/source3/smbd/notify_internal.c @@ -608,11 +608,18 @@ void notify_trigger(struct notify_context *notify, return; } + if (path[0] != '/') { + /* + * The rest of this routine assumes an absolute path. + */ + return; + } + idx_state.mem_ctx = talloc_tos(); idx_state.vnns = NULL; idx_state.my_vnn = get_my_vnn(); - for (p = path; p != NULL; p = next_p) { + for (p = strchr(path+1, '/'); p != NULL; p = next_p) { ptrdiff_t path_len = p - path; bool recursive; |