Re: [PATCH] ACPI: replace strlen("string") with sizeof("string") -1

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

 



06.08.2012 20:28, Alan Stern пишет:
On Mon, 6 Aug 2012, Pavel Vasilyev wrote:

06.08.2012 18:36, Alan Stern пишет:
On Mon, 6 Aug 2012, Pavel Machek wrote:

On Thu 2012-07-26 21:39:38, Len Brown wrote:
...both give the number of chars in the string
without the '\0', as strncmp() wants,
but sizeof() is compile-time.

What about introducing something like streq() to do this
automatically? This is ugly....

#define streq(a, b) ... if (_buildin_constant(b)) ...

?

-	if (!strncmp(val, "enable", strlen("enable"))) {
+	if (!strncmp(val, "enable", sizeof("enable") - 1)) {

While you're at it, there's no point using strncmp when you know the
length of one of the strings beforehand.  Just use memcmp, and don't
subtract 1 from the sizeof value.

http://www.gossamer-threads.com/lists/engine?do=post_attachment;postatt_id=41157;list=linux

Interestingly, many (all?) of the changes in that patch are wrong
because they don't try to match the terminating '\0'.  As a result,
they will match against extensions of the target string as well as the
target string itself.


strNcmp compare N bytes - http://lxr.linux.no/#linux+v3.5/lib/string.c#L270
memcmp compare N bytes  - http://lxr.linux.no/#linux+v3.5/lib/string.c#L651

--

                                                         Pavel.


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux