summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2006-04-07 12:32:51 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:00:47 -0500
commit5b1a495e96be6f92df3ba2d30095d879041f757e (patch)
tree65c0b4f47c3867e38397de2d01275121637500f7
parent5fb9da1b3f6e04cf9e9c4042532836651859f7e0 (diff)
downloadsamba-5b1a495e96be6f92df3ba2d30095d879041f757e.tar.gz
samba-5b1a495e96be6f92df3ba2d30095d879041f757e.tar.bz2
samba-5b1a495e96be6f92df3ba2d30095d879041f757e.zip
r14963: check talloc returns
(This used to be commit dd928e84ece04d35144befeda7a9b9dd597e4cf7)
-rw-r--r--source4/ntvfs/posix/pvfs_notify.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source4/ntvfs/posix/pvfs_notify.c b/source4/ntvfs/posix/pvfs_notify.c
index b5f2ad167a..592beb5a3e 100644
--- a/source4/ntvfs/posix/pvfs_notify.c
+++ b/source4/ntvfs/posix/pvfs_notify.c
@@ -109,12 +109,23 @@ static void pvfs_notify_callback(void *private, const struct notify_event *ev)
{
struct pvfs_notify_buffer *n = talloc_get_type(private, struct pvfs_notify_buffer);
size_t len;
+ struct notify_changes *n2;
char *new_path;
- n->changes = talloc_realloc(n, n->changes, struct notify_changes, n->num_changes+1);
- n->changes[n->num_changes].action = ev->action;
+ n2 = talloc_realloc(n, n->changes, struct notify_changes, n->num_changes+1);
+ if (n2 == NULL) {
+ /* nothing much we can do for this */
+ return;
+ }
+ n->changes = n2;
+
new_path = talloc_strdup(n->changes, ev->path);
+ if (new_path == NULL) {
+ return;
+ }
string_replace(new_path, '/', '\\');
+
+ n->changes[n->num_changes].action = ev->action;
n->changes[n->num_changes].name.s = new_path;
n->num_changes++;