svn commit: r192591 - head/sys/fs/nfsserver

Sam Leffler sam at freebsd.org
Sat May 23 18:35:27 UTC 2009


Bruce Evans wrote:
> On Fri, 22 May 2009, Sam Leffler wrote:
>
>> Alexey Dokuchaev wrote:
>>> On Fri, May 22, 2009 at 06:10:40PM +0000, Rick Macklem wrote:
>>>> ...
>>>> Log:
>>>>   Modified the printf message of r192590 to remove the
>>>>   possible DOS attack, as suggested by Sam.
>>>>   -    printf("out of clientids, possible DOS attack\n");
>>>> +    printf("out of clientids\n");
>>>>
>>>
>>> Previously, panic() message referred "nfs4", now it does not, making it
>>> rather cryptic without grepping through the source code.
>>> .
>> I requested the printf identify the call site; e.g.
>>
>> printf("%s: out of clientids\n", __func__);
>
> That is equally cryptic _with_ grepping through the source code, and
> much uglier.  __func__ should only be used when the function name is
> not a literal constant (mainly in macros).  The new nfs code only uses
> __func__ in 2 places, now including this one.  The old nfs code only
> uses it in a few more than 2 places.

IMO use of __func__ is far preferred to static strings as it follows the 
printf when it's moved to another function and allows fmt strings to be 
coalesced by the compiler/loader.  I can't count the times I've had a 
printf w/ the wrong function name send me on a wild goose chase until I 
grep'd for the remainder of the string.  IMO we should be replacing 
static function names w/ __func__ at every opportunity.

Regardless my advise was just that "advise".  So long as I can identify 
the call site in case this error msg gets duplicated I don't care.

    Sam



More information about the svn-src-head mailing list