aboutsummaryrefslogtreecommitdiff
path: root/src/lib/edid.c
diff options
context:
space:
mode:
authorJacob Garber <jgarber1@ualberta.ca>2019-03-25 19:53:45 -0600
committerPatrick Georgi <pgeorgi@google.com>2019-03-27 08:29:12 +0000
commitcd23f7f6c7c16443db65df7ee27f794a403ffa36 (patch)
tree2382deac5bf29018f0ee25f72cc7fa31859a4c29 /src/lib/edid.c
parent0fdc0b6b25581e6fb2bf99bbb22a173350f5f41b (diff)
lib/edid.c: Dump EDID breakdown after null check
The edid variable was being dereferenced before the null check. Split off the null check to before dumping and update the error message. Fixes CID 1370576 (REVERSE_INULL) Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Change-Id: I8fe3d911df3a11a873056d3a5c05c5a3cbcfe2c0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32055 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Diffstat (limited to 'src/lib/edid.c')
-rw-r--r--src/lib/edid.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/edid.c b/src/lib/edid.c
index 553b0a2d7e..5925759a4c 100644
--- a/src/lib/edid.c
+++ b/src/lib/edid.c
@@ -1138,11 +1138,16 @@ int decode_edid(unsigned char *edid, int size, struct edid *out)
.conformant = EDID_CONFORMANT,
};
- dump_breakdown(edid);
-
memset(out, 0, sizeof(*out));
- if (!edid || memcmp(edid, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8)) {
+ if (!edid) {
+ printk(BIOS_SPEW, "No EDID found\n");
+ return EDID_ABSENT;
+ }
+
+ dump_breakdown(edid);
+
+ if (memcmp(edid, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8)) {
printk(BIOS_SPEW, "No header found\n");
return EDID_ABSENT;
}