| To: vim-dev@vim.org |
| Subject: Patch 7.2.157 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| 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 |
| |
| |
| |
| |
| |
| *** 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(); |
| |
| |
| |
| *** 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 /// |