mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-02 00:53:29 +08:00
video: bmp: Fix video_display_rle8_bitmap()
In case the BMP size is bigger than the frame buffer, don't use the BMP's width and height in video_display_rle8_bitmap, but the one's checked in video_bmp_display() as parameters to video_display_rle8_bitmap(). Signed-off-by: Patrice Chotard <patrice.chotard@st.com> CC: Yannick Fertré <yannick.fertre@st.com>
This commit is contained in:
parent
1ebf2855b4
commit
ca2c6945b9
@ -40,18 +40,16 @@ static void draw_encoded_bitmap(ushort **fbp, ushort col, int cnt)
|
||||
|
||||
static void video_display_rle8_bitmap(struct udevice *dev,
|
||||
struct bmp_image *bmp, ushort *cmap,
|
||||
uchar *fb, int x_off, int y_off)
|
||||
uchar *fb, int x_off, int y_off,
|
||||
ulong width, ulong height)
|
||||
{
|
||||
struct video_priv *priv = dev_get_uclass_priv(dev);
|
||||
uchar *bmap;
|
||||
ulong width, height;
|
||||
ulong cnt, runlen;
|
||||
int x, y;
|
||||
int decode = 1;
|
||||
|
||||
debug("%s\n", __func__);
|
||||
width = get_unaligned_le32(&bmp->header.width);
|
||||
height = get_unaligned_le32(&bmp->header.height);
|
||||
bmap = (uchar *)bmp + get_unaligned_le32(&bmp->header.data_offset);
|
||||
|
||||
x = 0;
|
||||
@ -277,7 +275,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
|
||||
return -EPROTONOSUPPORT;
|
||||
}
|
||||
video_display_rle8_bitmap(dev, bmp, cmap_base, fb, x,
|
||||
y);
|
||||
y, width, height);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user