From: Vladimir Serbinenko Date: Fri, 8 Nov 2013 14:38:58 +0000 (+0100) Subject: * grub-core/gfxmenu/gui_progress_bar.c (draw_pixmap_bar): Avoid X-Git-Tag: grub-2.02-beta1~432 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bcfa6d72e3d13ec6c64afa35d687cc5d3bf63596;p=thirdparty%2Fgrub.git * grub-core/gfxmenu/gui_progress_bar.c (draw_pixmap_bar): Avoid division by-zero and senseless negative divisions. --- diff --git a/ChangeLog b/ChangeLog index 7e17a9bc1..f55a01d57 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-11-08 Vladimir Serbinenko + + * grub-core/gfxmenu/gui_progress_bar.c (draw_pixmap_bar): Avoid + division by-zero and senseless negative divisions. + 2013-11-08 Vladimir Serbinenko * configure.ac: Use elf_*_fbsd on kfreebsd. diff --git a/grub-core/gfxmenu/gui_progress_bar.c b/grub-core/gfxmenu/gui_progress_bar.c index 588f23f10..605c10997 100644 --- a/grub-core/gfxmenu/gui_progress_bar.c +++ b/grub-core/gfxmenu/gui_progress_bar.c @@ -169,8 +169,12 @@ draw_pixmap_bar (grub_gui_progress_bar_t self) else hlheight -= hl_v_pad; - barwidth = (tracklen * (self->value - self->start) - / (self->end - self->start)); + if (self->value <= self->start + || self->end <= self->start) + barwidth = 0; + else + barwidth = ((unsigned) (tracklen * (self->value - self->start)) + / ((unsigned) (self->end - self->start))); if (barwidth >= hl_h_pad) {