From 4f2109d782f91f7341a51644e3629ad1cbaea991 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 2 Jun 2013 18:07:37 +0200 Subject: [PATCH] updated for version 7.3.1098 Problem: Python: Possible memory leaks Solution: Add Py_XDECREF() calls. (ZyX) --- src/if_py_both.h | 8 ++++++++ src/version.c | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/if_py_both.h b/src/if_py_both.h index eedbf1ca2..21bf069c8 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -1017,6 +1017,7 @@ _DictionaryItem(DictionaryObject *self, PyObject *args, int flags) if (*key == NUL) { RAISE_NO_EMPTY_KEYS; + Py_XDECREF(todecref); return NULL; } @@ -1160,6 +1161,7 @@ DictionaryAssItem(DictionaryObject *self, PyObject *keyObject, PyObject *valObje if (!(key = StringToChars(keyObject, &todecref))) return -1; + if (*key == NUL) { RAISE_NO_EMPTY_KEYS; @@ -2216,9 +2218,11 @@ OptionsItem(OptionsObject *self, PyObject *keyObject) if (!(key = StringToChars(keyObject, &todecref))) return NULL; + if (*key == NUL) { RAISE_NO_EMPTY_KEYS; + Py_XDECREF(todecref); return NULL; } @@ -2349,9 +2353,11 @@ OptionsAssItem(OptionsObject *self, PyObject *keyObject, PyObject *valObject) if (!(key = StringToChars(keyObject, &todecref))) return -1; + if (*key == NUL) { RAISE_NO_EMPTY_KEYS; + Py_XDECREF(todecref); return -1; } @@ -4568,6 +4574,7 @@ pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookup_dict) dict_unref(dict); return -1; } + if (*key == NUL) { dict_unref(dict); @@ -4651,6 +4658,7 @@ pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookup_dict) dict_unref(dict); return -1; } + if (*key == NUL) { Py_DECREF(keyObject); diff --git a/src/version.c b/src/version.c index 03f14b93f..fad5ada8a 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1098, /**/ 1097, /**/ -- 2.50.1