| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.040 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| 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 |
| |
| |
| |
| |
| |
| *** 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) |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 40, |
| /**/ |
| |
| -- |
| With sufficient thrust, pigs fly just fine. |
| -- RFC 1925 |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 /// |