]> xenbits.xensource.com Git - seabios.git/commitdiff
vgabios: Make sure stdvga_list_modes() doesn't overrun the buffer.
authorKevin O'Connor <kevin@koconnor.net>
Tue, 11 Feb 2014 22:36:56 +0000 (17:36 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Tue, 11 Feb 2014 22:46:54 +0000 (17:46 -0500)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
vgasrc/stdvgamodes.c

index a97c85fe710dccead15c6e0537f09e1ce5c4eb00..84367292c0407aae7e8e0482f58b1f8b0cab3195 100644 (file)
@@ -336,7 +336,7 @@ void
 stdvga_list_modes(u16 seg, u16 *dest, u16 *last)
 {
     int i;
-    for (i = 0; i < ARRAY_SIZE(vga_modes); i++) {
+    for (i = 0; i < ARRAY_SIZE(vga_modes) && dest < last; i++) {
         struct stdvga_mode_s *stdmode_g = &vga_modes[i];
         u16 mode = GET_GLOBAL(stdmode_g->mode);
         if (mode == 0xffff)