From bda38eece8e90562aabf74b3be8663f02167a600 Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Mon, 5 Oct 2015 12:08:24 +0200 Subject: libpayload: Check for CBFS_DEFAULT_MEDIA in cbfs_get_file_content() The error-prone interface of cbfs_get_file_content() led to another possible NULL dereferencing. So check for CBFS_DEFAULT_MEDIA here like the other functions do. Change-Id: Ib8732160d389e9ecceb44f28be0e7de9a1d66e04 Signed-off-by: Nico Huber Reviewed-on: http://review.coreboot.org/11796 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- payloads/libpayload/libcbfs/cbfs_core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'payloads/libpayload') diff --git a/payloads/libpayload/libcbfs/cbfs_core.c b/payloads/libpayload/libcbfs/cbfs_core.c index 369d946f81..a4cb033c3b 100644 --- a/payloads/libpayload/libcbfs/cbfs_core.c +++ b/payloads/libpayload/libcbfs/cbfs_core.c @@ -191,6 +191,16 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name) void *cbfs_get_file_content(struct cbfs_media *media, const char *name, int type, size_t *sz) { + struct cbfs_media default_media; + + if (media == CBFS_DEFAULT_MEDIA) { + media = &default_media; + if (init_default_cbfs_media(media) != 0) { + ERROR("Failed to initialize default media.\n"); + return NULL; + } + } + struct cbfs_file *file = cbfs_get_file(media, name); if (sz) -- cgit v1.2.3