[libvirt] [PATCH] virpidfile: Allow whitespace character on the end of pidfile
Michal Privoznik
mprivozn at redhat.com
Mon Feb 13 13:44:43 UTC 2012
On 13.02.2012 14:42, Daniel Veillard wrote:
> 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
>
Thanks, pushed.
Michal
More information about the libvir-list
mailing list