To: vim-dev@vim.org Subject: Patch 7.2.157 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.157 Problem: Illegal memory access when searching in path. Solution: Avoid looking at a byte after end of a string. (Dominique Pelle) Files: src/search.c *** ../vim-7.2.156/src/search.c Fri Jul 18 12:05:58 2008 --- src/search.c Wed Apr 22 12:26:19 2009 *************** *** 2327,2334 **** for (col = pos.col; check_prevcol(linep, col, '\\', &col);) bslcnt++; } ! /* Only accept a match when 'M' is in 'cpo' or when ecaping is ! * what we expect. */ if (cpo_bsl || (bslcnt & 1) == match_escaped) { if (c == initc) --- 2336,2343 ---- for (col = pos.col; check_prevcol(linep, col, '\\', &col);) bslcnt++; } ! /* Only accept a match when 'M' is in 'cpo' or when escaping ! * is what we expect. */ if (cpo_bsl || (bslcnt & 1) == match_escaped) { if (c == initc) *************** *** 4663,4669 **** msg_putchar('\n'); /* cursor below last one */ if (!got_int) /* don't display if 'q' typed at "--more--" ! mesage */ { msg_home_replace_hl(new_fname); MSG_PUTS(_(" (includes previously listed match)")); --- 4672,4678 ---- msg_putchar('\n'); /* cursor below last one */ if (!got_int) /* don't display if 'q' typed at "--more--" ! message */ { msg_home_replace_hl(new_fname); MSG_PUTS(_(" (includes previously listed match)")); *************** *** 4975,4981 **** || IObuff[i-2] == '!')))) IObuff[i++] = ' '; } ! /* copy as much as posible of the new word */ if (p - aux >= IOSIZE - i) p = aux + IOSIZE - i - 1; STRNCPY(IObuff + i, aux, p - aux); --- 4984,4990 ---- || IObuff[i-2] == '!')))) IObuff[i++] = ' '; } ! /* copy as much as possible of the new word */ if (p - aux >= IOSIZE - i) p = aux + IOSIZE - i - 1; STRNCPY(IObuff + i, aux, p - aux); *************** *** 5010,5016 **** if (did_show) msg_putchar('\n'); /* cursor below last one */ if (!got_int) /* don't display if 'q' typed ! at "--more--" mesage */ msg_home_replace_hl(curr_fname); prev_fname = curr_fname; } --- 5019,5025 ---- if (did_show) msg_putchar('\n'); /* cursor below last one */ if (!got_int) /* don't display if 'q' typed ! at "--more--" message */ msg_home_replace_hl(curr_fname); prev_fname = curr_fname; } *************** *** 5092,5098 **** } if (action != ACTION_SHOW) { ! curwin->w_cursor.col = (colnr_T) (startp - line); curwin->w_set_curswant = TRUE; } --- 5101,5107 ---- } if (action != ACTION_SHOW) { ! curwin->w_cursor.col = (colnr_T)(startp - line); curwin->w_set_curswant = TRUE; } *************** *** 5119,5125 **** && action == ACTION_EXPAND && !(compl_cont_status & CONT_SOL) #endif ! && *(p = startp + 1)) goto search_line; } line_breakcheck(); --- 5128,5135 ---- && action == ACTION_EXPAND && !(compl_cont_status & CONT_SOL) #endif ! && *startp != NUL ! && *(p = startp + 1) != NUL) goto search_line; } line_breakcheck(); *** ../vim-7.2.156/src/version.c Wed Apr 22 16:22:44 2009 --- src/version.c Wed Apr 22 16:39:59 2009 *************** *** 678,679 **** --- 678,681 ---- { /* Add new patch number below this line */ + /**/ + 157, /**/ -- ARTHUR: Bloody peasant! DENNIS: Oh, what a give away. Did you hear that, did you hear that, eh? That's what I'm on about -- did you see him repressing me, you saw it didn't you? The Quest for the Holy Grail (Monty Python) /// 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 ///