[libvirt] [PATCH] virpidfile: Allow whitespace character on the end of pidfile

Michal Privoznik mprivozn at redhat.com
Mon Feb 13 13:29:44 UTC 2012


Some programs, notably dnsmasq, which are writing pidfiles on their
own do append a whitespace character after pid, e.g. '\n'.
---
 src/util/virpidfile.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c
index 34d1250..9c29967 100644
--- a/src/util/virpidfile.c
+++ b/src/util/virpidfile.c
@@ -34,7 +34,7 @@
 #include "intprops.h"
 #include "logging.h"
 #include "virterror_internal.h"
-
+#include "c-ctype.h"
 
 #define VIR_FROM_THIS VIR_FROM_NONE
 
@@ -119,6 +119,7 @@ int virPidFileReadPath(const char *path,
     ssize_t bytes;
     long long pid_value = 0;
     char pidstr[INT_BUFSIZE_BOUND(pid_value)];
+    char *endptr = NULL;
 
     *pid = 0;
 
@@ -135,7 +136,8 @@ int virPidFileReadPath(const char *path,
     }
     pidstr[bytes] = '\0';
 
-    if (virStrToLong_ll(pidstr, NULL, 10, &pid_value) < 0 ||
+    if (virStrToLong_ll(pidstr, &endptr, 10, &pid_value) < 0 ||
+        !(*endptr == '\0' || c_isspace(*endptr)) ||
         (pid_t) pid_value != pid_value) {
         rc = -1;
         goto cleanup;
-- 
1.7.3.4




More information about the libvir-list mailing list