From 9b108070aca5121523a74e744bce183f5cdbcb0f Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sun, 17 Jun 2012 18:03:41 +0200 Subject: * python/configuration.cc: - Handle the use of "del" on configuration values. Those are represented by calling the setter with NULL, which we did not handle before, causing a segmentation fault (Closes: #661062) --- python/configuration.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'python') diff --git a/python/configuration.cc b/python/configuration.cc index 3e634901..37374625 100644 --- a/python/configuration.cc +++ b/python/configuration.cc @@ -331,13 +331,16 @@ static PyObject *CnfMap(PyObject *Self,PyObject *Arg) // Assignment with operator [] static int CnfMapSet(PyObject *Self,PyObject *Arg,PyObject *Val) { - if (PyString_Check(Arg) == 0 || PyString_Check(Val) == 0) + if (PyString_Check(Arg) == 0 || (Val != NULL && PyString_Check(Val) == 0)) { PyErr_SetNone(PyExc_TypeError); return -1; } - GetSelf(Self).Set(PyString_AsString(Arg),PyString_AsString(Val)); + if (Val == NULL) + GetSelf(Self).Clear(PyString_AsString(Arg)); + else + GetSelf(Self).Set(PyString_AsString(Arg),PyString_AsString(Val)); return 0; } /*}}}*/ -- cgit v1.2.3