[prev in list] [next in list] [prev in thread] [next in thread] 

List:       coreutils
Subject:    Re: [PATCH] maint: prohibit use of strncpy
From:       Jim Meyering <jim () meyering ! net>
Date:       2012-05-25 15:21:25
Message-ID: 87mx4w70cq.fsf () rho ! meyering ! net
[Download RAW message or body]

Jim Meyering wrote:

> Eric Blake wrote:
>> On 05/24/2012 08:23 AM, Jim Meyering wrote:
>>> The use of strncpy is so seldom justifiable, that it is best
>>> just to avoid it altogether.  Thus, we should enforce that:
>>>
>>>>From 22695d676de21d0af6d50ca8218eeb49b45608ab Mon Sep 17 00:00:00 2001
>>> From: Jim Meyering <meyering@redhat.com>
>>> Date: Thu, 24 May 2012 16:21:34 +0200
>>> Subject: [PATCH] maint: prohibit use of strncpy
>>>
>>> * cfg.mk (sc_prohibit_strncpy): New syntax-check rule.
>>> Exempt pinky.c and who.c, at least for now.
>>> ---
>>>  cfg.mk | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/cfg.mk b/cfg.mk
>>> index 7a86c2a..ff5d996 100644
>>> --- a/cfg.mk
>>> +++ b/cfg.mk
>>> @@ -403,6 +403,12 @@ sc_prohibit_strncmp:
>>>  	  { echo '$(ME): use STREQ_LEN or STRPREFIX instead of str''ncmp' \
>>>  		1>&2; exit 1; } || :
>>>
>>> +# Really.  You don't want to use this function.
>>> +sc_prohibit_strncpy:
>>> +	@prohibit='\<str''ncpy *\('					\
>>> +	halt='do not use str''ncpy, period'				\
>>> +	  $(_sc_search_regexp)
>>
>>
>> This seems like it is worth floating into gnulib's maint.mk.
>
> That was my plan.
> I notice that libvirt has had a similar rule for a couple of years.
>
> This rule has two minor improvements over the one in coreutils:
> I removed the str''ncpy obfuscation, since it wasn't needed,
> and added comments.

BTW, thanks for the prod.
I had committed that locally for coreutils, but had not pushed.
So now I can just omit the rule addition, but I do need to keep
the exemption-adding part.  Hmm... easier just to push both, I guess.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic