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