To: vim_dev@googlegroups.com Subject: Patch 7.4.102 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.102 Problem: Crash when interrupting "z=". Solution: Add safety check for word length. (Christian Brabandt, Dominique Pelle) Files: src/spell.c *** ../vim-7.4.101/src/spell.c 2013-11-14 03:54:02.000000000 +0100 --- src/spell.c 2013-11-21 17:37:04.000000000 +0100 *************** *** 13398,13406 **** /* Lookup the word "orgnr" one of the two tries. */ n = 0; - wlen = 0; wordcount = 0; ! for (;;) { i = 1; if (wordcount == orgnr && byts[n + 1] == NUL) --- 13398,13405 ---- /* Lookup the word "orgnr" one of the two tries. */ n = 0; wordcount = 0; ! for (wlen = 0; wlen < MAXWLEN - 3; ++wlen) { i = 1; if (wordcount == orgnr && byts[n + 1] == NUL) *************** *** 13414,13419 **** --- 13413,13419 ---- if (i > byts[n]) /* safety check */ { STRCPY(theword + wlen, "BAD"); + wlen += 3; goto badword; } *************** *** 13426,13432 **** wordcount += wc; } ! theword[wlen++] = byts[n + i]; n = idxs[n + i]; } badword: --- 13426,13432 ---- wordcount += wc; } ! theword[wlen] = byts[n + i]; n = idxs[n + i]; } badword: *** ../vim-7.4.101/src/version.c 2013-11-21 17:12:55.000000000 +0100 --- src/version.c 2013-11-21 17:38:21.000000000 +0100 *************** *** 740,741 **** --- 740,743 ---- { /* Add new patch number below this line */ + /**/ + 102, /**/ -- Engineers will go without food and hygiene for days to solve a problem. (Other times just because they forgot.) (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///