On 12/05/2011 04:59 PM, Richard W.M. Jones wrote:
On Mon, Dec 05, 2011 at 02:30:35PM +0800, Wanlong Gao wrote:
> When add_string() error, it returned without free the *ret*.
>
> Signed-off-by: Wanlong Gao <gaowanlong(a)cn.fujitsu.com>
> ---
> daemon/md.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/daemon/md.c b/daemon/md.c
> index 5a4d815..8d28878 100644
> --- a/daemon/md.c
> +++ b/daemon/md.c
> @@ -294,12 +294,12 @@ do_md_detail(const char *md)
> }
> }
>
> + if (add_string(&ret, &size, &alloc, NULL) == -1) goto error;
> +
> free(out);
> free(err);
> free(lines); /* We freed the contained strings when we freed out */
>
> - if (add_string(&ret, &size, &alloc, NULL) == -1) return NULL;
> -
> return ret;
I'm not sure there's a problem. 'add_string' frees the strings and
sets ret = NULL on error, so either way of doing this seems safe ...
Yep, I made a mistake.
Rich.