hw/display/bcm2835_fb.c: Initialize all fields of struct
In bcm2835_fb_mbox_push(), Coverity complains (CID 1429989) that we
pass a pointer to a local struct to another function without
initializing all its fields. This is a real bug:
bcm2835_fb_reconfigure() copies the whole of our new BCM2385FBConfig
struct into s->config, so any fields we don't initialize will corrupt
the state of the device.
Copy the two fields which we don't want to update (pixo and alpha)
from the existing config so we don't accidentally change them.
Fixes: cfb7ba9838
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200628195436.27582-1-peter.maydell@linaro.org
This commit is contained in:
parent
4b4dc9750a
commit
e757db25aa
@ -282,6 +282,10 @@ static void bcm2835_fb_mbox_push(BCM2835FBState *s, uint32_t value)
|
||||
newconf.base = s->vcram_base | (value & 0xc0000000);
|
||||
newconf.base += BCM2835_FB_OFFSET;
|
||||
|
||||
/* Copy fields which we don't want to change from the existing config */
|
||||
newconf.pixo = s->config.pixo;
|
||||
newconf.alpha = s->config.alpha;
|
||||
|
||||
bcm2835_fb_validate_config(&newconf);
|
||||
|
||||
pitch = bcm2835_fb_get_pitch(&newconf);
|
||||
|
Loading…
Reference in New Issue
Block a user