Patch 7.3.040
Problem:    Comparing strings while ignoring case goes beyond end of the
            string when there are illegal bytes. (Dominique Pelle)
Solution:   Explicitly check for illegal bytes.
Files:      src/mbyte.c


*** ../vim-7.3.039/src/mbyte.c  2010-10-23 14:02:48.000000000 +0200
--- src/mbyte.c 2010-10-27 13:34:16.000000000 +0200
***************
*** 3124,3129 ****
--- 3124,3132 ----
                /* If one of the two characters is incomplete return -1. */
                if (incomplete || i + utf_byte2len(s2[i]) > n)
                    return -1;
+               /* Don't case-fold illegal bytes or truncated characters. */
+               if (utf_ptr2len(s1 + i) < l || utf_ptr2len(s2 + i) < l)
+                   return -1;
                cdiff = utf_fold(utf_ptr2char(s1 + i))
                                             - utf_fold(utf_ptr2char(s2 + i));
                if (cdiff != 0)
*** ../vim-7.3.039/src/version.c        2010-10-27 12:58:19.000000000 +0200
--- src/version.c       2010-10-27 13:25:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     40,
  /**/

-- 
    With sufficient thrust, pigs fly just fine.
                   -- RFC 1925

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui