mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 14:53:47 +08:00
Fix an error in some graphics error handling
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4059 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -2170,4 +2170,5 @@
|
|||||||
* graphics/nxmu/nx_getrectangle.c, graphics/nxsu/nx_getrectangle.c,
|
* graphics/nxmu/nx_getrectangle.c, graphics/nxsu/nx_getrectangle.c,
|
||||||
graphics/mxtk/nx_getwindow.c, graphics/nxmu/nx_gettoobar.c: New
|
graphics/mxtk/nx_getwindow.c, graphics/nxmu/nx_gettoobar.c: New
|
||||||
interfaces to read from graphics memory
|
interfaces to read from graphics memory
|
||||||
|
* graphics/nxbe/nxbe_bitmap.c: Fix an error in the error handling that
|
||||||
|
can cause valid bitmaps to fail to render.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* graphics/nxbe/nxbe_bitmap.c
|
* graphics/nxbe/nxbe_bitmap.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -125,6 +125,7 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de
|
|||||||
struct nxgl_rect_s bounds;
|
struct nxgl_rect_s bounds;
|
||||||
struct nxgl_point_s offset;
|
struct nxgl_point_s offset;
|
||||||
struct nxgl_rect_s remaining;
|
struct nxgl_rect_s remaining;
|
||||||
|
unsigned int deststride;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG
|
#ifdef CONFIG_DEBUG
|
||||||
@@ -150,10 +151,11 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Verify that the width of the destination rectangle does not exceed the
|
/* Verify that the width of the destination rectangle does not exceed the
|
||||||
* with of the source bitmap data
|
* width of the source bitmap data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((((bounds.pt2.x - offset.x) * wnd->be->plane[0].pinfo.bpp) >> 3) > stride)
|
deststride = (((bounds.pt2.x - bounds.pt1.x + 1) * wnd->be->plane[0].pinfo.bpp + 7) >> 3);
|
||||||
|
if (deststride > stride)
|
||||||
{
|
{
|
||||||
gdbg("Bad dest width\n");
|
gdbg("Bad dest width\n");
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user