From d4ebeeb78865c6a20a85437b82a1302921f3d1fe Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 25 Mar 2013 14:52:24 +0100 Subject: 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 Reviewed-by: Stefan Metzmacher --- source3/smbd/notify_internal.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source3/smbd/notify_internal.c') 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; -- cgit