[SSSD] [PATCH] Check is ccache structure is initialized before calling krb5_cc_destroy

Sumit Bose sbose at redhat.com
Fri Nov 6 22:15:00 UTC 2009


Hi,

krb5_cc_destroy() does not like it's second argument to be NULL.

This patch should fix #260.

bye,
Sumit
-------------- next part --------------
>From d4a6cf8ed110f89df38ba66e998205484b3e40e8 Mon Sep 17 00:00:00 2001
From: Sumit Bose <sbose at redhat.com>
Date: Fri, 6 Nov 2009 20:02:21 +0100
Subject: [PATCH] Check is ccache structure is initialized before calling krb5_cc_destroy

---
 server/providers/krb5/krb5_child.c |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/server/providers/krb5/krb5_child.c b/server/providers/krb5/krb5_child.c
index 319775a..2630e0f 100644
--- a/server/providers/krb5/krb5_child.c
+++ b/server/providers/krb5/krb5_child.c
@@ -343,8 +343,10 @@ sendresponse:
     resp = prepare_response_message(kr, kerr, pam_status);
     if (resp == NULL) {
         DEBUG(1, ("prepare_response_message failed.\n"));
-        krb5_cc_destroy(kr->ctx, kr->cc);
-        kr->cc = NULL;
+        if (kr->cc != NULL) {
+            krb5_cc_destroy(kr->ctx, kr->cc);
+            kr->cc = NULL;
+        }
         return ENOMEM;
     }
 
@@ -352,8 +354,10 @@ sendresponse:
     if (ret == -1) {
         err = errno;
         DEBUG(1, ("write failed [%d][%s].\n", errno, strerror(errno)));
-        krb5_cc_destroy(kr->ctx, kr->cc);
-        kr->cc = NULL;
+        if (kr->cc != NULL) {
+            krb5_cc_destroy(kr->ctx, kr->cc);
+            kr->cc = NULL;
+        }
         return err;
     }
 
@@ -421,8 +425,10 @@ sendresponse:
     resp = prepare_response_message(kr, kerr, pam_status);
     if (resp == NULL) {
         DEBUG(1, ("prepare_response_message failed.\n"));
-        krb5_cc_destroy(kr->ctx, kr->cc);
-        kr->cc = NULL;
+        if (kr->cc != NULL) {
+            krb5_cc_destroy(kr->ctx, kr->cc);
+            kr->cc = NULL;
+        }
         return ENOMEM;
     }
 
@@ -430,8 +436,10 @@ sendresponse:
     if (ret == -1) {
         err = errno;
         DEBUG(1, ("write failed [%d][%s].\n", errno, strerror(errno)));
-        krb5_cc_destroy(kr->ctx, kr->cc);
-        kr->cc = NULL;
+        if (kr->cc != NULL) {
+            krb5_cc_destroy(kr->ctx, kr->cc);
+            kr->cc = NULL;
+        }
         return err;
     }
 
-- 
1.6.2.5



More information about the sssd-devel mailing list