diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-04-15 20:40:41 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-04-15 20:40:41 +0200 |
commit | 66210042892389d36e3d37203ec77f61467bfb1c (patch) | |
tree | 6fae45292e7d8cb3b9bdd898f92f79045803743d /src/if_py_both.h | |
parent | 75be2339d877bbd38df91c0181e1e0e388852df6 (diff) |
patch 7.4.1744v7.4.1744
Problem: Python: Converting a sequence may leak memory.
Solution: Decrement a reference. (Nikolay Pavlov)
Diffstat (limited to 'src/if_py_both.h')
-rw-r--r-- | src/if_py_both.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/if_py_both.h b/src/if_py_both.h index 0b701ae082..c6a8c44635 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -6070,7 +6070,7 @@ ConvertFromPyMapping(PyObject *obj, typval_T *tv) ConvertFromPySequence(PyObject *obj, typval_T *tv) { PyObject *lookup_dict; - int ret = 0; + int ret; if (!(lookup_dict = PyDict_New())) return -1; @@ -6080,9 +6080,10 @@ ConvertFromPySequence(PyObject *obj, typval_T *tv) tv->v_type = VAR_LIST; tv->vval.v_list = (((ListObject *)(obj))->list); ++tv->vval.v_list->lv_refcount; + ret = 0; } else if (PyIter_Check(obj) || PySequence_Check(obj)) - return convert_dl(obj, tv, pyseq_to_tv, lookup_dict); + ret = convert_dl(obj, tv, pyseq_to_tv, lookup_dict); else { PyErr_FORMAT(PyExc_TypeError, |