- 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
This commit is contained in:
parent
144ced6bd3
commit
19aff1f6c5
4
_service
4
_service
@ -3,8 +3,8 @@
|
||||
<param name="scm">hg</param>
|
||||
<param name="url">https://code.google.com/p/vim</param>
|
||||
<param name="filename">vim</param>
|
||||
<param name="versionprefix">7.4.608.hg</param>
|
||||
<param name="revision">v7-4-608</param>
|
||||
<param name="versionprefix">7.4.629.hg</param>
|
||||
<param name="revision">v7-4-629</param>
|
||||
</service>
|
||||
<service name="recompress" mode="disabled">
|
||||
<param name="compression">xz</param>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:90fbbf8a7587e2e68997c017754d38b04c683c3ea411266a4da2e1d78a0a1e43
|
||||
size 7783768
|
3
vim-7.4.629.hg.6606.tar.xz
Normal file
3
vim-7.4.629.hg.6606.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:31fc60240787ebe1c132ec7931d08733fa74d0ca0edcd3fcb59c91cbd001296f
|
||||
size 7785992
|
@ -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)
|
||||
{
|
23
vim.changes
23
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
|
||||
|
||||
|
6
vim.spec
6
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} .
|
||||
|
Loading…
Reference in New Issue
Block a user