From 19aff1f6c58947a1ac072c530ed0a6f7368e7d9904d0a8eb4fb4fdd163384823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 11 Feb 2015 12:04:52 +0000 Subject: [PATCH] - Updated to revision 629, fixes the following problems * For complicated list and dict use the garbage collector can run out of stack space. * Syntax error. * The NFA engine does not implement the 'redrawtime' time limit. * Vim hangs when freeing a lot of objects. * Wrong ":argdo" range does not cause an error. * luaV_setref() is missing a return statement. (Ozaki Kiichi) * luaV_setref() not returning the correct value. * Compiler warning for unitinialized variable. (Tony Mechelynck) * Returning 1 in the wrong function. (Raymond Ko) * Compiler warning for unused argument. * Crash with pattern: \(\)\{80000} (Dominique Pelle) * May leak memory or crash when vim_realloc() returns NULL. * Possible NULL pointer dereference. * The last screen cell is not updated. * Compiler warning for variable might be clobbered by longjmp. * Coverity warning for Out-of-bounds read. - Remove vim-speedup-gc.patch, fixed upstream OBS-URL: https://build.opensuse.org/package/show/editors/vim?expand=0&rev=256 --- _service | 4 +- vim-7.4.608.hg.6563.tar.xz | 3 -- vim-7.4.629.hg.6606.tar.xz | 3 ++ vim-speedup-gc.patch | 76 -------------------------------------- vim.changes | 23 ++++++++++++ vim.spec | 6 +-- 6 files changed, 30 insertions(+), 85 deletions(-) delete mode 100644 vim-7.4.608.hg.6563.tar.xz create mode 100644 vim-7.4.629.hg.6606.tar.xz delete mode 100644 vim-speedup-gc.patch diff --git a/_service b/_service index 3e573bc..e7eac70 100644 --- a/_service +++ b/_service @@ -3,8 +3,8 @@ hg https://code.google.com/p/vim vim - 7.4.608.hg - v7-4-608 + 7.4.629.hg + v7-4-629 xz diff --git a/vim-7.4.608.hg.6563.tar.xz b/vim-7.4.608.hg.6563.tar.xz deleted file mode 100644 index 685ad1a..0000000 --- a/vim-7.4.608.hg.6563.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90fbbf8a7587e2e68997c017754d38b04c683c3ea411266a4da2e1d78a0a1e43 -size 7783768 diff --git a/vim-7.4.629.hg.6606.tar.xz b/vim-7.4.629.hg.6606.tar.xz new file mode 100644 index 0000000..71f4841 --- /dev/null +++ b/vim-7.4.629.hg.6606.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31fc60240787ebe1c132ec7931d08733fa74d0ca0edcd3fcb59c91cbd001296f +size 7785992 diff --git a/vim-speedup-gc.patch b/vim-speedup-gc.patch deleted file mode 100644 index 58988d9..0000000 --- a/vim-speedup-gc.patch +++ /dev/null @@ -1,76 +0,0 @@ -Index: vim-7.4.580.hg.6506/src/eval.c -=================================================================== ---- vim-7.4.580.hg.6506.orig/src/eval.c -+++ vim-7.4.580.hg.6506/src/eval.c -@@ -6927,48 +6927,51 @@ garbage_collect() - free_unref_items(copyID) - int copyID; - { -- dict_T *dd; -- list_T *ll; -+ dict_T *dd, *dd_next; -+ list_T *ll, *ll_next; - int did_free = FALSE; - - /* - * Go through the list of dicts and free items without the copyID. - */ -- for (dd = first_dict; dd != NULL; ) -+ for (dd = first_dict; dd != NULL; ) { - if ((dd->dv_copyID & COPYID_MASK) != (copyID & COPYID_MASK)) - { - /* Free the Dictionary and ordinary items it contains, but don't - * recurse into Lists and Dictionaries, they will be in the list - * of dicts or list of lists. */ -+ dd_next = dd->dv_used_next; - dict_free(dd, FALSE); - did_free = TRUE; -- -- /* restart, next dict may also have been freed */ -- dd = first_dict; -+ dd = dd_next; - } -- else -+ else { - dd = dd->dv_used_next; -+ } -+ } - - /* - * Go through the list of lists and free items without the copyID. - * But don't free a list that has a watcher (used in a for loop), these - * are not referenced anywhere. - */ -- for (ll = first_list; ll != NULL; ) -+ for (ll = first_list; ll != NULL; ) { - if ((ll->lv_copyID & COPYID_MASK) != (copyID & COPYID_MASK) - && ll->lv_watch == NULL) - { - /* Free the List and ordinary items it contains, but don't recurse - * into Lists and Dictionaries, they will be in the list of dicts - * or list of lists. */ -+ -+ ll_next = ll->lv_used_next; - list_free(ll, FALSE); - did_free = TRUE; -- -- /* restart, next list may also have been freed */ -- ll = first_list; -+ ll = ll_next; - } -- else -+ else { - ll = ll->lv_used_next; -+ } -+ } - - return did_free; - } -@@ -7125,6 +7128,7 @@ dict_free(d, recurse) - - /* Lock the hashtab, we don't want it to resize while freeing items. */ - hash_lock(&d->dv_hashtab); -+ assert(d->dv_hashtab.ht_locked > 0); - todo = (int)d->dv_hashtab.ht_used; - for (hi = d->dv_hashtab.ht_array; todo > 0; ++hi) - { diff --git a/vim.changes b/vim.changes index c8daaf3..3640fc1 100644 --- a/vim.changes +++ b/vim.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Wed Feb 11 11:42:11 UTC 2015 - idonmez@suse.com + +- Updated to revision 629, fixes the following problems + * For complicated list and dict use the garbage collector can run + out of stack space. + * Syntax error. + * The NFA engine does not implement the 'redrawtime' time limit. + * Vim hangs when freeing a lot of objects. + * Wrong ":argdo" range does not cause an error. + * luaV_setref() is missing a return statement. (Ozaki Kiichi) + * luaV_setref() not returning the correct value. + * Compiler warning for unitinialized variable. (Tony Mechelynck) + * Returning 1 in the wrong function. (Raymond Ko) + * Compiler warning for unused argument. + * Crash with pattern: \(\)\{80000} (Dominique Pelle) + * May leak memory or crash when vim_realloc() returns NULL. + * Possible NULL pointer dereference. + * The last screen cell is not updated. + * Compiler warning for variable might be clobbered by longjmp. + * Coverity warning for Out-of-bounds read. +- Remove vim-speedup-gc.patch, fixed upstream + ------------------------------------------------------------------- Mon Feb 2 13:17:21 UTC 2015 - idonmez@suse.com diff --git a/vim.spec b/vim.spec index ae4d51f..cc1048d 100644 --- a/vim.spec +++ b/vim.spec @@ -17,8 +17,8 @@ %define pkg_version 7.4 -%define patchlevel 608 -%define revision 6563 +%define patchlevel 629 +%define revision 6606 %define VIM_SUBDIR vim74 %define site_runtimepath /usr/share/vim/site %define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" %{?_smp_mflags} @@ -105,7 +105,6 @@ Patch18: %{name}-7.3-filetype_spec.patch Patch19: %{name}-7.3-diff_check.patch Patch21: %{name}-7.3-filetype_changes.patch Patch22: %{name}-7.4-filetype_mine.patch -Patch23: %{name}-speedup-gc.patch Patch100: vim-7.1.314-CVE-2009-0316-debian.patch Patch101: vim73-no-static-libpython.patch %{perl_requires} @@ -188,7 +187,6 @@ cp %{SOURCE23} runtime/syntax/apparmor.vim %patch19 -p1 %patch21 -p1 %patch22 -p1 -%patch23 -p1 %patch100 -p1 %patch101 cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .