components/krb5/patches/072-client-keytab-fix.patch
changeset 6978 14cbeb78966a
parent 6599 1d033832c5e7
equal deleted inserted replaced
6977:d12ba5c9b5db 6978:14cbeb78966a
    12 # https://github.com/krb5/krb5/commit/bd2c2a02e22c609b3c7e9f92d6634e151d14e478
    12 # https://github.com/krb5/krb5/commit/bd2c2a02e22c609b3c7e9f92d6634e151d14e478
    13 #
    13 #
    14 # Patch source: in-house
    14 # Patch source: in-house
    15 #
    15 #
    16 
    16 
    17 diff --git a/src/include/k5-trace.h b/src/include/k5-trace.h
       
    18 --- a/src/include/k5-trace.h
    17 --- a/src/include/k5-trace.h
    19 +++ b/src/include/k5-trace.h
    18 +++ b/src/include/k5-trace.h
    20 @@ -180,6 +180,9 @@ void krb5int_trace(krb5_context context, const char *fmt, ...);
    19 @@ -180,6 +180,9 @@ void krb5int_trace(krb5_context context, const char *fmt, ...);
    21  #define TRACE_GIC_PWD_MASTER(c)                         \
    20  #define TRACE_GIC_PWD_MASTER(c)                         \
    22      TRACE(c, "Retrying AS request with master KDC")
    21      TRACE(c, "Retrying AS request with master KDC")
    25 +    TRACE(c, "Unable to resolve default client keytab: {kerr}", ret)
    24 +    TRACE(c, "Unable to resolve default client keytab: {kerr}", ret)
    26 +
    25 +
    27  #define TRACE_ENCTYPE_LIST_UNKNOWN(c, profvar, name)                    \
    26  #define TRACE_ENCTYPE_LIST_UNKNOWN(c, profvar, name)                    \
    28      TRACE(c, "Unrecognized enctype name in {str}: {str}", profvar, name)
    27      TRACE(c, "Unrecognized enctype name in {str}: {str}", profvar, name)
    29  
    28  
    30 diff --git a/src/lib/gssapi/krb5/acquire_cred.c b/src/lib/gssapi/krb5/acquire_cred.c
       
    31 --- a/src/lib/gssapi/krb5/acquire_cred.c
    29 --- a/src/lib/gssapi/krb5/acquire_cred.c
    32 +++ b/src/lib/gssapi/krb5/acquire_cred.c
    30 +++ b/src/lib/gssapi/krb5/acquire_cred.c
    33 @@ -348,6 +348,9 @@ can_get_initial_creds(krb5_context context, krb5_gss_cred_id_rec *cred)
    31 @@ -348,6 +348,9 @@ can_get_initial_creds(krb5_context context, krb5_gss_cred_id_rec *cred)
    34      if (cred->password != NULL)
    32      if (cred->password != NULL)
    35          return TRUE;
    33          return TRUE;
    83 +        }
    81 +        }
    84 +    }
    82 +    }
    85      if (code)
    83      if (code)
    86          goto error;
    84          goto error;
    87  
    85  
    88 diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c
       
    89 --- a/src/lib/gssapi/krb5/iakerb.c
    86 --- a/src/lib/gssapi/krb5/iakerb.c
    90 +++ b/src/lib/gssapi/krb5/iakerb.c
    87 +++ b/src/lib/gssapi/krb5/iakerb.c
    91 @@ -454,9 +454,11 @@ iakerb_init_creds_ctx(iakerb_ctx_id_t ctx,
    88 @@ -454,9 +454,11 @@ iakerb_init_creds_ctx(iakerb_ctx_id_t ctx,
    92      if (cred->password != NULL) {
    89      if (cred->password != NULL) {
    93          code = krb5_init_creds_set_password(ctx->k5c, ctx->icc,
    90          code = krb5_init_creds_set_password(ctx->k5c, ctx->icc,
    99 +    } else {
    96 +    } else {
   100 +        code = KRB5_KT_NOTFOUND;
    97 +        code = KRB5_KT_NOTFOUND;
   101      }
    98      }
   102      if (code != 0)
    99      if (code != 0)
   103          goto cleanup;
   100          goto cleanup;
   104 diff --git a/src/tests/gssapi/t_client_keytab.py b/src/tests/gssapi/t_client_keytab.py
       
   105 --- a/src/tests/gssapi/t_client_keytab.py
   101 --- a/src/tests/gssapi/t_client_keytab.py
   106 +++ b/src/tests/gssapi/t_client_keytab.py
   102 +++ b/src/tests/gssapi/t_client_keytab.py
   107 @@ -141,4 +141,14 @@ if 'No credentials cache found' not in out:
   103 @@ -141,4 +141,14 @@ if 'No credentials cache found' not in out:
   108      fail('Expected error not seen')
   104      fail('Expected error not seen')
   109  realm.run([kdestroy, '-A'])
   105  realm.run([kdestroy, '-A'])