From fa38f9ca438f5e7f59d08d8d47af1efa06c3a7b3 Mon Sep 17 00:00:00 2001 From: Michael Weiser <michael.weiser@gmx.de> Date: Thu, 6 Aug 2015 16:16:10 +0000 Subject: [PATCH] Prevent NULL pointer dereference if kadm5_init_with_creds fails If kadm5_init_with_ccreds failed, the pointer to the kadmin Python object would be set to NULL but cleanup would still try to use kadmin->context when freeing princ and closing the ccache. --- src/kadmin.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/kadmin.c b/src/kadmin.c index c9e78ce..4ceffda 100644 --- a/src/kadmin.c +++ b/src/kadmin.c @@ -309,14 +309,6 @@ static PyKAdminObject *_kadmin_init_with_ccache(PyObject *self, PyObject *args) db_args, &kadmin->server_handle); - if (retval != KADM5_OK) { - - Py_XDECREF(kadmin); - kadmin = NULL; - - PyKAdminError_raise_error(retval, "kadm5_init_with_creds"); - } - cleanup: @@ -328,6 +320,14 @@ cleanup: krb5_free_principal(kadmin->context, princ); krb5_cc_close(kadmin->context, cc); + if (retval != KADM5_OK) { + + Py_XDECREF(kadmin); + kadmin = NULL; + + PyKAdminError_raise_error(retval, "kadm5_init_with_creds"); + } + if (params) free(params); -- GitLab