[libvirt] [PATCH v4 12/13] Adapt to VIR_STRDUP and VIR_STRNDUP in src/xenxs/*

Ján Tomko jtomko at redhat.com
Thu May 23 11:28:34 UTC 2013


On 05/20/2013 07:55 PM, Michal Privoznik wrote:
> ---
>  src/xenxs/xen_sxpr.c | 200 ++++++++++++++++++++++-----------------------------
>  src/xenxs/xen_xm.c   |  91 +++++++++++------------
>  2 files changed, 125 insertions(+), 166 deletions(-)
> 
> diff --git a/src/xenxs/xen_sxpr.c b/src/xenxs/xen_sxpr.c
> index 9a76d04..aa99a61 100644
> --- a/src/xenxs/xen_sxpr.c
> +++ b/src/xenxs/xen_sxpr.c
> @@ -238,18 +236,14 @@ xenParseSxprChar(const char *value,
>          }
>  
>          if (offset != value &&
> -            (def->source.data.tcp.host = strndup(value,
> -                                                 offset - value)) == NULL)
> -            goto no_memory;
> +            VIR_STRNDUP(def->source.data.tcp.host, value, offset - value) < 0)
> +            goto error;
>  
>          offset2 = strchr(offset, ',');
> -        if (offset2 == NULL)
> -            def->source.data.tcp.service = strdup(offset+1);
> -        else
> -            def->source.data.tcp.service = strndup(offset+1,
> -                                                   offset2-(offset+1));
> -        if (def->source.data.tcp.service == NULL)
> -            goto no_memory;
> +        if ((offset && VIR_STRNDUP(def->source.data.tcp.service,
> +                                   offset + 1, offset2 - offset - 1) < 0) ||
> +            (!offset && VIR_STRDUP(def->source.data.tcp.service, offset + 1) < 0))
> +            goto error;

Change offset to offset2 at the beginning of the condition.
Or you could do it with just one VIR_STRNDUP call:

offset++;
if (VIR_STRNDUP(def->source.data.tcp.service, offset,
                offset2 ? offset2 - offset : strlen(offset)) < 0)
    goto error;

>  
>          if (offset2 && strstr(offset2, ",server"))
>              def->source.data.tcp.listen = true;

ACK

Jan




More information about the libvir-list mailing list