To: [email protected]
Subject: Patch 7.2a.006
Fcc: outbox
From: Bram Moolenaar <[email protected]>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 7.2a.006
Problem:    Reading past NUL in a string.
Solution:   Check for invalid utf-8 byte sequence. (Dominique Pelle)
Files:      src/charset.c


*** ../vim-7.2a.005/src/charset.c       Tue Jun 24 23:25:31 2008
--- src/charset.c       Sat Jun 28 12:35:01 2008
***************
*** 449,461 ****
       {
           if (enc_utf8)
           {
!               int     c, lc;
!
!               c = utf_ptr2char(STR_PTR(i));
!               lc = utf_tolower(c);
!               if (c != lc)
               {
-                   int     ol = utf_char2len(c);
                   int     nl = utf_char2len(lc);

                   /* If the byte length changes need to shift the following
--- 449,463 ----
       {
           if (enc_utf8)
           {
!               int     c = utf_ptr2char(STR_PTR(i));
!               int     ol = utf_ptr2len(STR_PTR(i));
!               int     lc = utf_tolower(c);
!
!               /* Only replace the character when it is not an invalid
!                * sequence (ASCII character or more than one byte) and
!                * utf_tolower() doesn't return the original character. */
!               if ((c < 0x80 || ol > 1) && c != lc)
               {
                   int     nl = utf_char2len(lc);

                   /* If the byte length changes need to shift the following
*** ../vim-7.2a.005/src/version.c       Fri Jun 27 21:16:33 2008
--- src/version.c       Sat Jun 28 12:48:02 2008
***************
*** 678,679 ****
--- 678,681 ----
 {   /* Add new patch number below this line */
+ /**/
+     6,
 /**/

--
hundred-and-one symptoms of being an internet addict:
109. You actually read -- and enjoy -- lists like this.

/// 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    ///