# HG changeset patch # User Bram Moolenaar # Date 1349465407 -7200 # Node ID 0f5ee262963528ddccfa1f54b83696f939d21b53 # Parent c3791ff631eae37c3300132e8580e8f61c5cce1f updated for version 7.3.683 Problem: ":python" may crash when vimbindeval() returns None. Solution: Check for v_string to be NULL. (Yukihiro Nakadaira) diff --git a/src/if_py_both.h b/src/if_py_both.h --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -351,7 +351,8 @@ VimToPython(typval_T *our_tv, int depth, if (our_tv->v_type == VAR_STRING) { - result = Py_BuildValue("s", our_tv->vval.v_string); + result = Py_BuildValue("s", our_tv->vval.v_string == NULL + ? "" : (char *)our_tv->vval.v_string); } else if (our_tv->v_type == VAR_NUMBER) { @@ -2751,7 +2752,8 @@ ConvertToPyObject(typval_T *tv) switch (tv->v_type) { case VAR_STRING: - return PyBytes_FromString((char *) tv->vval.v_string); + return PyBytes_FromString(tv->vval.v_string == NULL + ? "" : (char *)tv->vval.v_string); case VAR_NUMBER: return PyLong_FromLong((long) tv->vval.v_number); #ifdef FEAT_FLOAT @@ -2763,7 +2765,8 @@ ConvertToPyObject(typval_T *tv) case VAR_DICT: return DictionaryNew(tv->vval.v_dict); case VAR_FUNC: - return FunctionNew(tv->vval.v_string); + return FunctionNew(tv->vval.v_string == NULL + ? (char_u *)"" : tv->vval.v_string); case VAR_UNKNOWN: Py_INCREF(Py_None); return Py_None; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -720,6 +720,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 683, +/**/ 682, /**/ 681,