From 315ae8ae9787935f012169b2c001a827078c92e0 Mon Sep 17 00:00:00 2001 From: Matthias Dieter Wallnöfer Date: Thu, 27 May 2010 17:06:12 +0200 Subject: s4:libcli/clideltree.c - fix "asprintf"s --- source4/libcli/clideltree.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'source4') diff --git a/source4/libcli/clideltree.c b/source4/libcli/clideltree.c index d947ac3547..7bce95c2a1 100644 --- a/source4/libcli/clideltree.c +++ b/source4/libcli/clideltree.c @@ -41,7 +41,10 @@ static void delete_fn(struct clilist_file_info *finfo, const char *name, void *s n = strdup(name); n[strlen(n)-1] = 0; - asprintf(&s, "%s%s", n, finfo->name); + if (asprintf(&s, "%s%s", n, finfo->name) < 0) { + free(n); + return; + } if (finfo->attrib & FILE_ATTRIBUTE_READONLY) { if (NT_STATUS_IS_ERR(smbcli_setatr(dstate->tree, s, 0, 0))) { @@ -52,7 +55,11 @@ static void delete_fn(struct clilist_file_info *finfo, const char *name, void *s if (finfo->attrib & FILE_ATTRIBUTE_DIRECTORY) { char *s2; - asprintf(&s2, "%s\\*", s); + if (asprintf(&s2, "%s\\*", s) < 0) { + free(s); + free(n); + return; + } smbcli_unlink(dstate->tree, s2); smbcli_list(dstate->tree, s2, FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM, @@ -109,7 +116,9 @@ int smbcli_deltree(struct smbcli_tree *tree, const char *dname) } } - asprintf(&mask, "%s\\*", dname); + if (asprintf(&mask, "%s\\*", dname) < 0) { + return -1; + } smbcli_unlink(dstate.tree, mask); smbcli_list(dstate.tree, mask, FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM, -- cgit