From 5328780b5f7e63f520c9499c5068b4f0f6a7d234 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 16 Apr 2015 16:07:15 +0200 Subject: [PATCH] virNetSocketNewConnectUNIX: Don't unlink(NULL) 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 Signed-off-by: Michal Privoznik (cherry picked from commit 1fdac3d99a8147092075593d84350d80f5b9bb45) --- 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 b8242850ae..a59e3e1154 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 -- GitLab