[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