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 <[email protected]>
---
 drivers/video/fbdev/core/fbmon.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/video/fbdev/core/fbmon.c b/drivers/video/fbdev/core/fbmon.c
index 5b0e313..9ec81ee 100644
--- a/drivers/video/fbdev/core/fbmon.c
+++ b/drivers/video/fbdev/core/fbmon.c
@@ -608,6 +608,11 @@ static struct fb_videomode *fb_create_modedb(unsigned char 
*edid, int *dbsize)
        int num = 0, i, first = 1;
        int ver, rev;
 
+       if (edid == NULL || !edid_checksum(edid) ||
+               !edid_check_header(edid)) {
+               return NULL;
+       }
+
        ver = edid[EDID_STRUCT_VERSION];
        rev = edid[EDID_STRUCT_REVISION];
 
@@ -615,12 +620,6 @@ static struct fb_videomode *fb_create_modedb(unsigned char 
*edid, int *dbsize)
        if (mode == NULL)
                return NULL;
 
-       if (edid == NULL || !edid_checksum(edid) ||
-           !edid_check_header(edid)) {
-               kfree(mode);
-               return NULL;
-       }
-
        *dbsize = 0;
 
        DPRINTK("   Detailed Timings\n");
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to