]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/term/gfxterm.c (grub_gfxterm_putchar): Don't set values
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 25 Dec 2011 15:15:01 +0000 (16:15 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 25 Dec 2011 15:15:01 +0000 (16:15 +0100)
outside of range.

ChangeLog
grub-core/term/gfxterm.c

index ba142a6eb3d828230d273c232474e16352f57977..ba35da3d61aaa054292a915a3b3758a465a550c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 2011-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
 
-       Avoid cutting in the middle of UTF-8 string.
+       * grub-core/term/gfxterm.c (grub_gfxterm_putchar): Don't set values
+       outside of range.
+
+2011-12-25  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Avoid cutting in the middle of UTF-8 character.
 
        * include/grub/charset.h (grub_getend): New function.
        * grub-core/script/function.c (grub_script_function_find): Use
index a10af5930d83ae9f74afe0d2677bff415bb8012f..0eee6410556addadc9f36d2499fae644fde13553 100644 (file)
@@ -893,7 +893,9 @@ grub_gfxterm_putchar (struct grub_term_output *term,
         {
           unsigned i;
 
-          for (i = 1; i < char_width; i++)
+          for (i = 1; i < char_width && p + i < 
+                virtual_screen.text_buffer + virtual_screen.columns
+                * virtual_screen.rows; i++)
             {
              grub_free (p[i].code);
               p[i].code = grub_unicode_glyph_from_code (' ');