@@ -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");
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@spectrumdigital.se> --- drivers/video/fbdev/core/fbmon.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)