From 4eef651ff503f81b778e5af0ed78354e0dec0dd7 Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Wed, 3 Feb 2021 11:19:41 +1100 Subject: programmer.h: Convert anon union to anon struct Convert the anon union of registered masters in the mst field of the flashctx to a anon struct. If we are going to dereference a pointer there in an undefined way we should crash and not plow ahead with invalid memory. The user of the registered_masters type is therefore responsible for querying the buses_supported field before attempting to dereference a ptr field in the anon struct. BUG=b:175849641 TEST=`flashrom -p internal --flash-name` Change-Id: I576967a8599b923c902e39f177f39146291cc242 Signed-off-by: Edward O'Callaghan Reviewed-on: https://review.coreboot.org/c/flashrom/+/50246 Reviewed-by: Anastasia Klimchuk Reviewed-by: Peter Marheine Reviewed-by: Daniel Campello Reviewed-by: Sam McNally Tested-by: build bot (Jenkins) --- programmer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'programmer.c') diff --git a/programmer.c b/programmer.c index bee60e38..42ea2e3b 100644 --- a/programmer.c +++ b/programmer.c @@ -83,7 +83,8 @@ void fallback_chip_readn(const struct flashctx *flash, uint8_t *buf, int register_par_master(const struct par_master *mst, const enum chipbustype buses) { - struct registered_master rmst; + struct registered_master rmst = {0}; + if (!mst->chip_writeb || !mst->chip_writew || !mst->chip_writel || !mst->chip_writen || !mst->chip_readb || !mst->chip_readw || !mst->chip_readl || !mst->chip_readn) { -- cgit v1.2.3