Prev: [RFC PATCH 0/1] Driver for ami305 magnetometer
Next: -next: Nov 12 - kernel BUG at kernel/sched.c:7359!
From: Casey Schaufler on 15 Nov 2009 13:50 Raja R Harinath wrote: > Hi, > > Casey Schaufler <casey(a)schaufler-ca.com> writes: > > >> Joe Perches wrote: >> > [snip] > >>> I assert that code should be made as readable >>> as possible and that the code used fit the >>> reader's expectations. >>> >>> strcmp(foo, "BAR") is natural. >>> strncmp(foo, "BAR", sizeof("BAR")) is unnatural >>> and should not be used. >>> >> Oh good gravy. I've been writing C code since the 1970's and >> have seen enough "unnatural" code to make most people think that >> PASCAL was a good idea. This is not unnatural code. This is an >> argument over which side of the head of the pin the odd angel >> should dance on. Give it up. You're advocating a gratuitous >> change. Can't y'all go find some questionable casts to expunge? >> That might actually be useful. >> > > I think the point is that > > strncmp(foo, "BAR", sizeof("BAR")) > > is exceedingly similar to > > strncmp(foo, "BAR", strlen("BAR")) > > which mean different things. The point of this series was the suspicion > that people who intended the "strlen" variant might have used the > "sizeof" variant. > The point is that the code is correct as written. The change suggested, changing the sizeof to strlen, would result in incorrect behavior in the case where foo is "BAR-BAR-BA-RAN". The other change suggested, which is to change strncmp to strcmp, would be functionally correct but offers no value, might be considered less safe in certain circles, and requires a change that, like any change, adds a trivial amount of risk. > And, since this confusion exists, it is probably better to use two > canonical forms for the two different meanings > > strcmp(foo, "BAR") > strncmp(foo, "BAR", strlen("BAR")) > > and avoid other equivalent formulations. > > - Hari > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo(a)vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
First
|
Prev
|
Pages: 1 2 3 4 5 Prev: [RFC PATCH 0/1] Driver for ami305 magnetometer Next: -next: Nov 12 - kernel BUG at kernel/sched.c:7359! |