On Wednesday, 11 October 2017 17:23:45 CEST Richard W.M. Jones wrote:
> +static int
> +mexp_vprintf (mexp_h *h, int password, const char *fs, va_list args)
>  {
> -  va_list args;
>    char *msg;
>    int len;
>    size_t n;
>    ssize_t r;
>    char *p;
>  
> -  va_start (args, fs);
>    len = vasprintf (&msg, fs, args);
> -  va_end (args);

Due to the nature of va_list (whose implementation greatly differs per
architecture -- from a pointer, to a list of pointers, to structs, etc),
I think that here you need to copy the va_list using va_copy(), and
pass the copy to vasprintf.

I cannot find a better reference, but
https://stackoverflow.com/questions/3369588/pass-va-list-or-pointer-to-va-list
has a piece of advice on that.

-- 
Pino Toscano

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to