diff options
author | Patrice Chotard <patrice.chotard@st.com> | 2019-11-20 14:11:16 +0100 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2019-12-06 09:07:45 +0100 |
commit | ca2c6945b9e158716138b9d138c72676e719bd8e (patch) | |
tree | 35e9e87e8b93675d8a9026071b77d3b5cbffaa6b /drivers | |
parent | 1ebf2855b486f7ff6dcac1ab953abbf68462ecad (diff) | |
download | u-boot-ca2c6945b9e158716138b9d138c72676e719bd8e.tar.gz u-boot-ca2c6945b9e158716138b9d138c72676e719bd8e.tar.xz u-boot-ca2c6945b9e158716138b9d138c72676e719bd8e.zip |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/video_bmp.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c index 2c3d2e6e36..8768228029 100644 --- a/drivers/video/video_bmp.c +++ b/drivers/video/video_bmp.c @@ -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 |