]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/normal/charset.c (bidi_line_wrap): Avoid <= in loop
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 22 Feb 2012 04:19:11 +0000 (05:19 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 22 Feb 2012 04:19:11 +0000 (05:19 +0100)
condition to avoid possibly infinite loops.

ChangeLog
grub-core/normal/charset.c

index 1608dd9c83a7d21957171c6fd92a68d98e881fbf..0c9b86d189214391e13c204ff7328dc730707b7c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/normal/charset.c (bidi_line_wrap): Avoid <= in loop
+       condition to avoid possibly infinite loops.
+
 2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/emu/hostdisk.c (read_device_map): Add missing noreturn
index 5792cee9378f685fa65b21fdc47b70e31d4da130..084e1e66c6fe8ff0d224abfed3d1a866ef02b8ee 100644 (file)
@@ -608,7 +608,7 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out,
   {
     struct grub_unicode_glyph t;
     unsigned i, tl;
-    for (i = 0; i <= (end - start) / 2; i++)
+    for (i = 0; i < (end - start) / 2 + 1; i++)
       {
        t = visual[start + i];
        visual[start + i] = visual[end - i];
@@ -665,7 +665,7 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out,
          {
            unsigned j;   
            /* FIXME: can be optimized.  */
-           for (j = max_level; j >= min_odd_level; j--)
+           for (j = max_level; j > min_odd_level - 1; j--)
              {
                unsigned in = 0;
                unsigned i;
@@ -734,7 +734,7 @@ bidi_line_wrap (struct grub_unicode_glyph *visual_out,
          {
            int right_join = 0;
            signed i;
-           for (i = k - 1; i >= (signed) line_start; i--)
+           for (i = k - 1; i > (signed) line_start - 1; i--)
              {
                enum grub_join_type join_type = get_join_type (visual[i].base);
                if (!(visual[i].attributes