Re: [PATCH] event: don't queue NULL event on OOM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 01/09/2014 10:22 PM, Eric Blake wrote:
> Ever since commit 61ac8ce, Coverity complained about
> remoteNetworkBuildEventLifecycle not checking for NULL failure
> to build an event, compared to other calls in the code base.
> But the problem is latent from copy and paste; all 17 of our
> remote*BuildEvent* functions in remote_driver.c have the same
> issue - if an OOM causes an event to not be built, we happily
> pass NULL to remoteEventQueue(), but that function has marked
> event as a nonnull parameter.  We were getting lucky (the
> event queue's first use of the event happened to be a call to
> virIsObjectClass(), which acts gracefully on NULL, so there
> was no way to crash); but this is a latent bug waiting to bite
> us due to the disregard for the nonnull attribute, as well as
> a waste of resources in the event queue.  Better is to just
> refuse to queue NULL.  The discard is silent, since the problem
> only happens on OOM, and since events are already best effort -
> if we fail to get an event, it's not like we have any memory
> left to report the issue, nor any idea of who would benefit
> from knowing we couldn't create or queue the event.
> 
> * src/remote/remote_driver.c (remoteEventQueue): Ignore NULL event.
> 
> Signed-off-by: Eric Blake <eblake@xxxxxxxxxx>
> ---
> 
> I don't know if this will actually shut up Coverity, or if we
> have to modify all 17 calls to remoteEventQueue to do the NULL
> check there.  I'm hoping this simpler solution does the trick.
> 
>  src/remote/remote_driver.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 

ACK

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]