Message ID | 20250407-fix_nvidia-v1-1-843f8d031c7d@quicinc.com |
---|---|
State | New |
Headers | show |
Series | fbdev/nvidiafb: Correct const string length in nvidiafb_setup() | expand |
On 4/7/25 13:55, Zijun Hu wrote: > From: Zijun Hu <quic_zijuhu@quicinc.com> > > The actual length of const string "noaccel" is 7, but the strncmp() > branch in nvidiafb_setup() wrongly hard codes it as 6. > > Fix by using actual length 7 as argument of the strncmp(). > > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> > --- > drivers/video/fbdev/nvidia/nvidia.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) applied. Thanks! Helge
On Mon, 07 Apr 2025, Zijun Hu <zijun_hu@icloud.com> wrote: > From: Zijun Hu <quic_zijuhu@quicinc.com> > > The actual length of const string "noaccel" is 7, but the strncmp() > branch in nvidiafb_setup() wrongly hard codes it as 6. > > Fix by using actual length 7 as argument of the strncmp(). > > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> > --- > drivers/video/fbdev/nvidia/nvidia.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c > index 8900f181f1952acd2acc16a6ab49a5a42ec056ac..cfaf9454014d8161bedc3598fb68855e04ea9408 100644 > --- a/drivers/video/fbdev/nvidia/nvidia.c > +++ b/drivers/video/fbdev/nvidia/nvidia.c > @@ -1484,7 +1484,7 @@ static int nvidiafb_setup(char *options) > flatpanel = 1; > } else if (!strncmp(this_opt, "hwcur", 5)) { > hwcur = 1; > - } else if (!strncmp(this_opt, "noaccel", 6)) { > + } else if (!strncmp(this_opt, "noaccel", 7)) { > noaccel = 1; > } else if (!strncmp(this_opt, "noscale", 7)) { > noscale = 1; A further cleanup could be to replace all of the strncmp's with str_has_prefix(this_opt, "...") to avoid this class of errors altogether. It also returns the length of the prefix on match, and that can be used to drop more magic numbers. BR, Jani. > > --- > base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8 > change-id: 20250407-fix_nvidia-a9d72c98a808 > > Best regards,
On 2025/4/25 16:55, Jani Nikula wrote: >> } else if (!strncmp(this_opt, "noscale", 7)) { >> noscale = 1; > A further cleanup could be to replace all of the strncmp's with > str_has_prefix(this_opt, "...") to avoid this class of errors > altogether. It also returns the length of the prefix on match, and that > can be used to drop more magic numbers. very agree with your point. may use strstarts(). there are many strncmp() usages with long const string and hardcoded string length. some usages are wrong.
diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index 8900f181f1952acd2acc16a6ab49a5a42ec056ac..cfaf9454014d8161bedc3598fb68855e04ea9408 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -1484,7 +1484,7 @@ static int nvidiafb_setup(char *options) flatpanel = 1; } else if (!strncmp(this_opt, "hwcur", 5)) { hwcur = 1; - } else if (!strncmp(this_opt, "noaccel", 6)) { + } else if (!strncmp(this_opt, "noaccel", 7)) { noaccel = 1; } else if (!strncmp(this_opt, "noscale", 7)) { noscale = 1;