On Fri, 30 Oct 2020 at 14:29, Peter Maydell <[email protected]> wrote:
>
> On Fri, 30 Oct 2020 at 10:23, AlexChen <[email protected]> wrote:
> >
> > In omap_lcd_interrupts(), the pointer omap_lcd is dereferenced before
> > being check if it is valid, which may lead to NULL pointer dereference.
> > So move the assignment to surface after checking that the omap_lcd is valid.
> >
> > Reported-by: Euler Robot <[email protected]>
> > Signed-off-by: Alex Chen <[email protected]>
> > ---
> > hw/display/omap_lcdc.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> Applied to target-arm.next, thanks.
Whoops, spoke too soon. This doesn't compile:
../../hw/display/omap_lcdc.c: In function ‘omap_update_display’:
../../hw/display/omap_lcdc.c:88:10: error: ‘surface’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
!surface_bits_per_pixel(surface)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
because the early exit check
if (!omap_lcd || omap_lcd->plm == 1 || !omap_lcd->enable ||
!surface_bits_per_pixel(surface)) {
return;
}
uses 'surface' and this patch moves the initialization of that
variable down below its first use.
thanks
-- PMM