Re: [PATCH] video: fbdev: matrox: matroxfb_base.c: Fix for possible null pointer dereference

From: Mikulas Patocka
Date: Wed Jul 02 2014 - 18:18:46 EST




On Wed, 2 Jul 2014, Rickard Strandqvist wrote:

> Fix a possible null pointer dereference, there is otherwise a risk of a
> possible null pointer dereference
>
> This was found using a static code analysis program called cppcheck
>
> Signed-off-by: Rickard Strandqvist <rickard_strandqvist@xxxxxxxxxxxxxxxxxx>
> ---
> drivers/video/fbdev/matrox/matroxfb_base.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
> index 7116c53..85ef84b 100644
> --- a/drivers/video/fbdev/matrox/matroxfb_base.c
> +++ b/drivers/video/fbdev/matrox/matroxfb_base.c
> @@ -1971,9 +1971,9 @@ static void matroxfb_register_device(struct matrox_fb_info* minfo) {
> int i = 0;
> list_add(&minfo->next_fb, &matroxfb_list);
> for (drv = matroxfb_driver_l(matroxfb_driver_list.next);
> - drv != matroxfb_driver_l(&matroxfb_driver_list);
> + drv && drv != matroxfb_driver_l(&matroxfb_driver_list);

The "drv" check is pointless because drv can't be NULL - use the patch
below.

> drv = matroxfb_driver_l(drv->node.next)) {
> - if (drv && drv->probe) {
> + if (drv->probe) {
> void *p = drv->probe(minfo);
> if (p) {
> minfo->drivers_data[i] = p;
> --
> 1.7.10.4

matroxfb: delete pointless NULL-pointer check

The for loop walks a double-linked list, so drv cannot be NULL.

This patch deletes the pointless NULL-pointer check. cppcheck warned about
it.

Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>

---
drivers/video/fbdev/matrox/matroxfb_base.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/drivers/video/fbdev/matrox/matroxfb_base.c
===================================================================
--- linux-2.6.orig/drivers/video/fbdev/matrox/matroxfb_base.c 2014-06-19 16:41:45.048259897 +0200
+++ linux-2.6/drivers/video/fbdev/matrox/matroxfb_base.c 2014-07-03 00:13:04.299380130 +0200
@@ -1973,7 +1973,7 @@ static void matroxfb_register_device(str
for (drv = matroxfb_driver_l(matroxfb_driver_list.next);
drv != matroxfb_driver_l(&matroxfb_driver_list);
drv = matroxfb_driver_l(drv->node.next)) {
- if (drv && drv->probe) {
+ if (drv->probe) {
void *p = drv->probe(minfo);
if (p) {
minfo->drivers_data[i] = p;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/