Fix blocker bug 5745 kerberos authentication with (lib)smbclient is broken.
authorJeremy Allison <jra@samba.org>
Wed, 10 Sep 2008 17:16:42 +0000 (10:16 -0700)
committerKarolin Seeger <kseeger@samba.org>
Thu, 11 Sep 2008 11:15:56 +0000 (13:15 +0200)
Jeremy.
(cherry picked from commit 738729cad0b88a2f453d61d38e1088003afd0a9e)

source/libsmb/clikrb5.c

index a7ca24f7a2ecb22cd3b3979234a5b8f649e52661..66dd5f610296d23ca45b2b3f500a19eb7a4599f5 100644 (file)
@@ -743,16 +743,21 @@ static krb5_error_code ads_krb5_mk_req(krb5_context context,
                                                ccache,
                                                &in_data );
                if (retval) {
-                       DEBUG( 1, ("ads_krb5_get_fwd_ticket failed (%s)\n", error_message( retval ) ) );
-                       goto cleanup_creds;
-               }
+                       DEBUG( 3, ("ads_krb5_get_fwd_ticket failed (%s)\n", error_message( retval ) ) );
 
-               if (retval) {
-                       DEBUG( 1, ("krb5_auth_con_set_req_cksumtype failed (%s)\n",
-                               error_message( retval ) ) );
-                       goto cleanup_creds;
-               }
+                       /*
+                        * This is not fatal. Delete the *auth_context and continue
+                        * with krb5_mk_req_extended to get a non-forwardable ticket.
+                        */
 
+                       if (in_data.data) {
+                               free( in_data.data );
+                               in_data.data = NULL;
+                               in_data.length = 0;
+                       }
+                       krb5_auth_con_free(context, *auth_context);
+                       *auth_context = NULL;
+               }
        }
 #endif