2006-05-09 Vesa Jaaskelainen <chaac@nic.fi>

* video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
        checking.
        (grub_video_vbe_blit_glyph): Likewise.
        (grub_video_vbe_blit_bitmap): Likewise.
        (grub_video_vbe_blit_render_target): Likewise.
This commit is contained in:
chaac 2006-05-09 20:11:11 +00:00
parent 83b984def6
commit 31b86e9f3b
2 changed files with 20 additions and 12 deletions

View File

@ -1,3 +1,11 @@
2006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
* video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
checking.
(grub_video_vbe_blit_glyph): Likewise.
(grub_video_vbe_blit_bitmap): Likewise.
(grub_video_vbe_blit_render_target): Likewise.
2006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
* configure.ac (--with-platform): Properly quote the square

View File

@ -944,9 +944,9 @@ grub_video_vbe_fill_rect (grub_video_color_t color, int x, int y,
unsigned int i, j;
/* Make sure there is something to do. */
if ((x > (int)render_target->viewport.width) || (x + (int)width < 0))
if ((x >= (int)render_target->viewport.width) || (x + (int)width < 0))
return GRUB_ERR_NONE;
if ((y > (int)render_target->viewport.height) || (y + (int)height < 0))
if ((y >= (int)render_target->viewport.height) || (y + (int)height < 0))
return GRUB_ERR_NONE;
/* Do not allow drawing out of viewport. */
@ -1013,10 +1013,10 @@ grub_video_vbe_blit_glyph (struct grub_font_glyph * glyph,
unsigned int y_offset = 0;
/* Make sure there is something to do. */
if (x > (int)render_target->viewport.width)
if (x >= (int)render_target->viewport.width)
return GRUB_ERR_NONE;
if (y > (int)render_target->viewport.height)
if (y >= (int)render_target->viewport.height)
return GRUB_ERR_NONE;
/* Calculate glyph dimensions. */
@ -1070,9 +1070,9 @@ grub_video_vbe_blit_bitmap (struct grub_video_bitmap * bitmap,
unsigned int width, unsigned int height)
{
/* Make sure there is something to do. */
if ((x > (int)render_target->viewport.width) || (x + (int)width < 0))
if ((x >= (int)render_target->viewport.width) || (x + (int)width < 0))
return GRUB_ERR_NONE;
if ((y > (int)render_target->viewport.height) || (y + (int)height < 0))
if ((y >= (int)render_target->viewport.height) || (y + (int)height < 0))
return GRUB_ERR_NONE;
/* Do not allow drawing out of viewport. */
@ -1130,19 +1130,19 @@ grub_video_vbe_blit_render_target (struct grub_video_render_target *source,
/* Make sure there is something to do. */
if ((width == 0) || (height == 0))
return GRUB_ERR_NONE;
if ((x > (int)render_target->viewport.width) || (x + (int)width < 0))
if ((x >= (int)render_target->viewport.width) || (x + (int)width < 0))
return GRUB_ERR_NONE;
if ((y > (int)render_target->viewport.height) || (y + (int)height < 0))
if ((y >= (int)render_target->viewport.height) || (y + (int)height < 0))
return GRUB_ERR_NONE;
if ((x + (int)source->mode_info.width) < 0)
return GRUB_ERR_NONE;
if ((y + (int)source->mode_info.height) < 0)
return GRUB_ERR_NONE;
if ((offset_x > (int)source->mode_info.width)
|| (offset_x + (int)source->mode_info.width < 0))
if ((offset_x >= (int)source->mode_info.width)
|| (offset_x + (int)width < 0))
return GRUB_ERR_NONE;
if ((offset_y > (int)source->mode_info.height)
|| (offset_y + (int)source->mode_info.height < 0))
if ((offset_y >= (int)source->mode_info.height)
|| (offset_y + (int)height < 0))
return GRUB_ERR_NONE;
/* If we have negative coordinates, optimize drawing to minimum. */