From: Marc-André Lureau Date: Thu, 13 Oct 2011 11:47:58 +0000 (+0200) Subject: virFDStream: close also given errfd (fd leak) X-Git-Tag: v0.9.7-rc1~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72851bb9ef0a6aef20141d0a13c36e5a1907a43a;p=thirdparty%2Flibvirt.git virFDStream: close also given errfd (fd leak) In virFDStreamOpenFileInternal(), a errfd pipe is opened by virCommandRunAsync() and given to virFDStreamOpenInternal(). It seems virFDStream should close errfd, just like the other fd it is given. This fixes screenshots leaking FDs: http://bugzilla.redhat.com/show_bug.cgi?id=745761 --- diff --git a/src/fdstream.c b/src/fdstream.c index b60162c6a1..841f979ddb 100644 --- a/src/fdstream.c +++ b/src/fdstream.c @@ -268,6 +268,10 @@ virFDStreamClose(virStreamPtr st) virCommandFree(fdst->cmd); fdst->cmd = NULL; } + + if (VIR_CLOSE(fdst->errfd) < 0) + VIR_DEBUG("ignoring failed close on fd %d", fdst->errfd); + st->privateData = NULL; if (fdst->dispatching) {