bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] canonicalize: add support for not resolving symlinks


From: Pádraig Brady
Subject: Re: [PATCH] canonicalize: add support for not resolving symlinks
Date: Fri, 30 Dec 2011 14:43:06 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0

On 12/30/2011 01:49 PM, Eric Blake wrote:
> On 12/30/2011 04:04 AM, Jim Meyering wrote:
>>> -          if (lstat (rname, &st) != 0)
>>> +          if ((logical?stat:lstat) (rname, &st) != 0)
>>
>> Please add spaces around operators:
>>
>>              if ((logical ? stat : lstat) (rname, &st) != 0)
> 
> Better yet, don't write this as a function pointer conditional, as the
> gnulib replacement for stat on some platforms has to be a function-like
> macro (no thanks to 'struct stat').  Using a function pointer
> conditional risks missing the gnulib macro for stat, and calling the
> underlying system stat() instead of the intended rpl_stat(), for broken
> behavior.  You have to use:
> 
> if (logical ? stat (rname, &st) : lstat (rname, &st)) != 0)
> 

Ouch. Good catch.
I'll need to fix in a follow up patch.
I'll need to adjust such uses in coreutils too.

cheers,
Pádraig.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]