OSDN Git Service

hw/display/bcm2835_fb: Validate config settings
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 24 Aug 2018 12:17:50 +0000 (13:17 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 24 Aug 2018 12:17:50 +0000 (13:17 +0100)
commitf8add62c0c8826ca0fa90e6e3a80b810f63fe1dd
treee278c908772cb3109c34875d643077c624685ce7
parent01f18af98b04dc3f47c37a150ae342fafd7337df
hw/display/bcm2835_fb: Validate config settings

Validate the config settings that the guest tries to set.

The wiki page documentation is not really accurate here:
generally rather than failing requests to set bad parameters,
the hardware will just clip them to something sensible.

Validate the most important parameters: sizes and
the viewport offsets. This prevents the framebuffer
code from trying to read out-of-range memory.

In the property handling code, we validate the new parameters every
time we encounter a tag that sets them. This means we validate the
config multiple times if the request includes multiple config-setting
tags, but the code would require significant restructuring to do a
validation only once but still return the clipped settings for
get-parameter tags and the buffer allocation tag.

Validation of settings made via the older bcm2835_fb_mbox_push()
function will be done in the next commit.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180814144436.679-8-peter.maydell@linaro.org
hw/display/bcm2835_fb.c
hw/misc/bcm2835_property.c
include/hw/display/bcm2835_fb.h