
On 06/14/2013 06:54 AM, Ján Tomko wrote:
On 06/14/2013 11:18 AM, Michal Privoznik wrote:
On 14.06.2013 10:53, Guannan Ren wrote:
On 06/13/2013 09:56 PM, Ján Tomko wrote:
+ virBuffer buf = VIR_BUFFER_INITIALIZER; + const char *format = NULL; + + virBufferAdd(&buf, fmt, -1); + virBufferTrim(&buf, "\n", -1);
Coverity analysis uncovered a complaint in last nights run after this was pushed. The virBufferTrim() call has "other" places where the return status is checked, but this call doesn't. Using cscope I also see that virNetSSHCheckHostKey() in virnetsshsession.c does not check return status. FILE: src/node_device/node_device_udev.c Coverity error seen in the output: ERROR: CHECKED_RETURN FUNCTION: udevLogFunction Coverity Events: 372 virBufferAdd(&buf, fmt, -1); Calling function "virBufferTrim(virBufferPtr, (1) Event check_return: char const *, int)" without checking return value (as is done elsewhere 5 out of 6 times). No check of the return value of (7) Event unchecked_value: "virBufferTrim(&buf, "\n", - 1)". [example_checked][example_checked] Also see events: [example_checked][example_checked] [example_checked] ------------------------------------------------------------
+
We need a virBufferError checking here before formatting into a string.
virBufferContentAndReset already checks for the error and returns NULL if there was one. The only possible error here is ENOMEM.
In which case we want to got with fmt as provided.
Michal
If we aren't going to report the buffer error, I think checking format for NULL should be enough.
I'll squash this in before pushing:
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index b462549..bb58415 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -374,10 +374,9 @@ udevLogFunction(struct udev *udev ATTRIBUTE_UNUSED,
format = virBufferContentAndReset(&buf);
- if (format) - virLogVMessage(VIR_LOG_FROM_LIBRARY, - virLogPriorityFromSyslog(priority), - file, line, fn, NULL, format, args); + virLogVMessage(VIR_LOG_FROM_LIBRARY, + virLogPriorityFromSyslog(priority), + file, line, fn, NULL, format ? format : fmt, args);
VIR_FREE(format); }
Jan
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list