diff options
Diffstat (limited to 'kernel/drivers/video/fbdev/core/fbmon.c')
-rw-r--r-- | kernel/drivers/video/fbdev/core/fbmon.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/drivers/video/fbdev/core/fbmon.c b/kernel/drivers/video/fbdev/core/fbmon.c index 01ef1b953..47c3191ec 100644 --- a/kernel/drivers/video/fbdev/core/fbmon.c +++ b/kernel/drivers/video/fbdev/core/fbmon.c @@ -1072,9 +1072,9 @@ void fb_edid_add_monspecs(unsigned char *edid, struct fb_monspecs *specs) for (i = specs->modedb_len + num; i < specs->modedb_len + num + svd_n; i++) { int idx = svd[i - specs->modedb_len - num]; - if (!idx || idx > 63) { + if (!idx || idx >= ARRAY_SIZE(cea_modes)) { pr_warning("Reserved SVD code %d\n", idx); - } else if (idx > ARRAY_SIZE(cea_modes) || !cea_modes[idx].xres) { + } else if (!cea_modes[idx].xres) { pr_warning("Unimplemented SVD code %d\n", idx); } else { memcpy(&m[i], cea_modes + idx, sizeof(m[i])); @@ -1475,7 +1475,9 @@ int of_get_fb_videomode(struct device_node *np, struct fb_videomode *fb, if (ret) return ret; - fb_videomode_from_videomode(&vm, fb); + ret = fb_videomode_from_videomode(&vm, fb); + if (ret) + return ret; pr_debug("%s: got %dx%d display mode from %s\n", of_node_full_name(np), vm.hactive, vm.vactive, np->name); |