| To: vim-dev@vim.org |
| Subject: Patch 7.2.122 |
| 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.122 |
| Problem: Invalid memory access when the VimResized autocommand changes |
| 'columns' and/or 'lines'. |
| Solution: After VimResized check for changed values. (Dominique Pelle) |
| Files: src/screen.c |
| |
| |
| |
| |
| |
| *** 7368,7374 **** |
| --- 7368,7378 ---- |
| #endif |
| static int entered = FALSE; /* avoid recursiveness */ |
| static int done_outofmem_msg = FALSE; /* did outofmem message */ |
| + #ifdef FEAT_AUTOCMD |
| + int retry_count = 0; |
| |
| + retry: |
| + #endif |
| /* |
| * Allocation of the screen buffers is done only when the size changes and |
| * when Rows and Columns have been set and we have started doing full |
| |
| *** 7643,7650 **** |
| --RedrawingDisabled; |
| |
| #ifdef FEAT_AUTOCMD |
| ! if (starting == 0) |
| apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); |
| #endif |
| } |
| |
| --- 7647,7663 ---- |
| --RedrawingDisabled; |
| |
| #ifdef FEAT_AUTOCMD |
| ! /* |
| ! * Do not apply autocommands more than 3 times to avoid an endless loop |
| ! * in case applying autocommands always changes Rows or Columns. |
| ! */ |
| ! if (starting == 0 && ++retry_count <= 3) |
| ! { |
| apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); |
| + /* In rare cases, autocommands may have altered Rows or Columns, |
| + * jump back to check if we need to allocate the screen again. */ |
| + goto retry; |
| + } |
| #endif |
| } |
| |
| |
| |
| |
| *** 678,679 **** |
| --- 678,681 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 122, |
| /**/ |
| |
| -- |
| FIXME and XXX are two common keywords used to mark broken or incomplete code |
| not only since XXX as a sex reference would grab everbodys attention but |
| simply due to the fact that Vim would highlight these words. |
| -- Hendrik Scholz |
| |
| /// 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 /// |