diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-05-07 20:53:10 +0000 |
---|---|---|
committer | Volker Lendecke <vlendec@samba.org> | 2007-05-07 20:53:10 +0000 |
commit | ffe3bc0dcbb4689965f20e6fbf8e9b1569abcc88 (patch) | |
tree | 57151639fcdcc969fbb59b28556330516989aede | |
parent | 486719185f2adfadb6d1b69d7e5edd5395f0bf27 (diff) | |
download | samba-ffe3bc0dcbb4689965f20e6fbf8e9b1569abcc88.tar.gz samba-ffe3bc0dcbb4689965f20e6fbf8e9b1569abcc88.tar.xz samba-ffe3bc0dcbb4689965f20e6fbf8e9b1569abcc88.zip |
r22755: Second half of r22754. As it stands now, string_replace expects a
pstring. Give it one, although I hate putting it in :-)
Thanks to Tom Bork! :-)
-rw-r--r-- | source/smbd/notify.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/source/smbd/notify.c b/source/smbd/notify.c index d18bbb180f4..b2ac26764af 100644 --- a/source/smbd/notify.c +++ b/source/smbd/notify.c @@ -337,7 +337,7 @@ void notify_fname(connection_struct *conn, uint32 action, uint32 filter, static void notify_fsp(files_struct *fsp, uint32 action, const char *name) { struct notify_change *change, *changes; - char *name2; + pstring name2; if (fsp->notify == NULL) { /* @@ -346,11 +346,7 @@ static void notify_fsp(files_struct *fsp, uint32 action, const char *name) return; } - if (!(name2 = talloc_strdup(fsp->notify, name))) { - DEBUG(0, ("talloc_strdup failed\n")); - return; - } - + pstrcpy(name2, name); string_replace(name2, '/', '\\'); /* @@ -364,7 +360,6 @@ static void notify_fsp(files_struct *fsp, uint32 action, const char *name) * guard against a DoS here. */ TALLOC_FREE(fsp->notify->changes); - TALLOC_FREE(name2); fsp->notify->num_changes = -1; return; } @@ -377,7 +372,6 @@ static void notify_fsp(files_struct *fsp, uint32 action, const char *name) fsp->notify, fsp->notify->changes, struct notify_change, fsp->notify->num_changes+1))) { DEBUG(0, ("talloc_realloc failed\n")); - TALLOC_FREE(name2); return; } @@ -385,7 +379,11 @@ static void notify_fsp(files_struct *fsp, uint32 action, const char *name) change = &(fsp->notify->changes[fsp->notify->num_changes]); - change->name = talloc_move(changes, &name2); + if (!(change->name = talloc_strdup(changes, name2))) { + DEBUG(0, ("talloc_strdup failed\n")); + return; + } + change->action = action; fsp->notify->num_changes += 1; @@ -401,7 +399,7 @@ static void notify_fsp(files_struct *fsp, uint32 action, const char *name) * We have to send the two rename events in one reply. So hold * the first part back. */ - return; + return; } /* |