File 0001-Initialise-pydelegatestate-variable-to-NULL.patch of Package python-kerberos
Date: 2015-07-16
Author: Howard Guo <hguo@suse.com>
A bug in the python module was discovered when using FreeIPA.
FreeIPA administrative utility "ipa" calls authGSSClientInit without offering
delegatestate parameter, causing segfault in the python module due to missing
initialisation and checks.
diff -rupN kerberos-1.2.2/src/kerberos.c kerberos-1.2.2-patched/src/kerberos.c
--- kerberos-1.2.2/src/kerberos.c 2015-03-27 00:13:12.000000000 +0100
+++ kerberos-1.2.2-patched/src/kerberos.c 2015-07-15 11:17:11.793577875 +0200
@@ -132,7 +132,7 @@ static PyObject* authGSSClientInit(PyObj
gss_client_state *state;
PyObject *pystate;
gss_server_state *delegatestate = NULL;
- PyObject *pydelegatestate;
+ PyObject *pydelegatestate = NULL;
static char *kwlist[] = {
"service", "principal", "gssflags", "delegated", NULL
};
@@ -149,7 +149,7 @@ static PyObject* authGSSClientInit(PyObj
state = (gss_client_state *) malloc(sizeof(gss_client_state));
pystate = PyCObject_FromVoidPtr(state, NULL);
- if (PyCObject_Check(pydelegatestate)) {
+ if (pydelegatestate && PyCObject_Check(pydelegatestate)) {
delegatestate = PyCObject_AsVoidPtr(pydelegatestate);
}