Mercurial > vim
changeset 4411:1afdb7d21c14 v7.3.954
updated for version 7.3.954
Problem: No check if PyObject_IsTrue fails.
Solution: Add a check for -1 value. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 15 May 2013 16:11:50 +0200 |
parents | dc9e62f8cbb5 |
children | 13c2f09befbd |
files | src/if_py_both.h src/version.c |
diffstat | 2 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -700,7 +700,10 @@ DictionarySetattr(PyObject *self, char * } else { - if (PyObject_IsTrue(val)) + int istrue = PyObject_IsTrue(val); + if (istrue == -1) + return -1; + else if (istrue) this->dict->dv_lock = VAR_LOCKED; else this->dict->dv_lock = 0; @@ -1201,7 +1204,10 @@ ListSetattr(PyObject *self, char *name, } else { - if (PyObject_IsTrue(val)) + int istrue = PyObject_IsTrue(val); + if (istrue == -1) + return -1; + else if (istrue) this->list->lv_lock = VAR_LOCKED; else this->list->lv_lock = 0; @@ -1479,7 +1485,10 @@ OptionsAssItem(OptionsObject *this, PyOb if (flags & SOPT_BOOL) { - r = set_option_value_for(key, PyObject_IsTrue(valObject), NULL, + int istrue = PyObject_IsTrue(valObject); + if (istrue == -1) + return -1; + r = set_option_value_for(key, istrue, NULL, opt_flags, this->opt_type, this->from); } else if (flags & SOPT_NUM)