On Mon, Feb 13, 2012 at 02:29:44PM +0100, Michal Privoznik wrote:
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;
Okay, thanks for chasing this last minute issue, ACK
please push :-)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/