On Tue, Oct 3, 2017 at 11:04 AM, Borislav Petkov <b...@alien8.de> wrote: > On Mon, Oct 02, 2017 at 05:42:56PM +0200, Thomas Gleixner wrote: >> On Mon, 2 Oct 2017, Borislav Petkov wrote: >> > From: Nicolas Iooss <nicolas.iooss_li...@m4x.org> >> > >> > parse_cec_param() compares a string with "cec_disable" using only 7 >> > characters of the 11-character-long string. Fix the length. >> > >> > Signed-off-by: Nicolas Iooss <nicolas.iooss_li...@m4x.org> >> > Fixes: 011d82611172 ("RAS: Add a Corrected Errors Collector") >> > Link: >> > http://lkml.kernel.org/r/20170903075440.30250-1-nicolas.iooss_li...@m4x.org >> > Signed-off-by: Borislav Petkov <b...@suse.de> >> > --- >> > drivers/ras/cec.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c >> > index d0e5d6ee882c..586c296d1538 100644 >> > --- a/drivers/ras/cec.c >> > +++ b/drivers/ras/cec.c >> > @@ -523,7 +523,7 @@ int __init parse_cec_param(char *str) >> > if (*str == '=') >> > str++; >> > >> > - if (!strncmp(str, "cec_disable", 7)) >> > + if (!strncmp(str, "cec_disable", 11)) >> >> This kind of issue happens over and over. So if you really want to use >> strncmp() then this should be: >> >> #define CEC_DISABLE "cec_disable" >> >> if (!strncmp(str, CEC_DISABLE, strlen(CEC_DISABLE)) >> >> or we get a proper helper for that. Though in case of comparing some string >> against a constant string strncmp() has no real advantage over strcmp() as >> the comparison is guaranteed to be bound by the string constant. > > Right. > > Nicolas, wanna address that? > > Thx.
Hi, the only difference I see between strncmp+strlen and strcmp is that the first option compares a prefix ("does the string begin with cec_disable?") and the second one checks that strings are equals. In parse_cec_param() it does not seem to matter. I have seen that Thomas Gleixner has already committed a modified patch which uses strcmp(), which looks good to me. Thanks! Nicolas