There is a possibility that we jump onto error label with @lockpath still initialized to NULL. Here, the @lockpath should be unlink()-ed, but passing there a NULL is not a good idea. Don't do that. In fact, we should call unlink() only if we created the lock file successfully.
Reported-by: John Ferlan <jfer...@redhat.com> Signed-off-by: Michal Privoznik <mpriv...@redhat.com> --- src/rpc/virnetsocket.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index b824285..a59e3e1 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -622,7 +622,7 @@ int virNetSocketNewConnectUNIX(const char *path, usleep(5000); } - if (lockfd) { + if (lockfd != -1) { unlink(lockpath); VIR_FORCE_CLOSE(lockfd); VIR_FREE(lockpath); @@ -640,12 +640,13 @@ int virNetSocketNewConnectUNIX(const char *path, return 0; error: - if (lockfd) + if (lockfd != -1) { unlink(lockpath); + VIR_FORCE_CLOSE(lockfd); + } VIR_FREE(lockpath); VIR_FREE(rundir); VIR_FORCE_CLOSE(fd); - VIR_FORCE_CLOSE(lockfd); return -1; } #else -- 2.0.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list