[libvirt] [PATCH v2] udev: fix crash in libudev logging

Michal Privoznik mprivozn at redhat.com
Fri Jun 14 09:18:15 UTC 2013


On 14.06.2013 10:53, Guannan Ren wrote:
> On 06/13/2013 09:56 PM, Ján Tomko wrote:
>> Call virLogVMessage instead of virLogMessage, since libudev
>> called us with a va_list object, not a list of arguments.
>>
>> Honor message priority and strip the trailing newline.
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=969152
>> ---
>> v1: https://www.redhat.com/archives/libvir-list/2013-June/msg00349.html
>> v2: don't ignore priority and strip the trailing newline.
> 
>> +typedef void (*udevLogFunctionPtr)(struct udev *udev,
>> +                                   int priority,
>> +                                   const char *file,
>> +                                   int line,
>> +                                   const char *fn,
>> +                                   const char *format,
>> +                                   va_list args);
>> +
>> +static void
>> +ATTRIBUTE_FMT_PRINTF(6,0)
>> +udevLogFunction(struct udev *udev ATTRIBUTE_UNUSED,
>> +                int priority,
>> +                const char *file,
>> +                int line,
>> +                const char *fn,
>> +                const char *fmt,
>> +                va_list args)
>>   {
>> -    VIR_ERROR_INT(VIR_LOG_FROM_LIBRARY, file, line, fn, fmt, args);
>> +    virBuffer buf = VIR_BUFFER_INITIALIZER;
>> +    const char *format = NULL;
>> +
>> +    virBufferAdd(&buf, fmt, -1);
>> +    virBufferTrim(&buf, "\n", -1);
>> +
> 
>           We need a virBufferError checking here before formatting into
> a string.

In which case we want to got with fmt as provided.

Michal




More information about the libvir-list mailing list