components/krb5/patches/037-root-defcred.patch
changeset 6599 1d033832c5e7
parent 5490 9bf0bc57423a
equal deleted inserted replaced
6598:97c29bc92758 6599:1d033832c5e7
     4 # root doesn't have a cred already.
     4 # root doesn't have a cred already.
     5 #
     5 #
     6 # This is Solaris specific behavior that MIT will not take upstream.
     6 # This is Solaris specific behavior that MIT will not take upstream.
     7 # Patch source: in-house
     7 # Patch source: in-house
     8 #
     8 #
     9 diff -u -r old/src/include/k5-int.h new/src/include/k5-int.h
     9 diff --git a/src/include/k5-int.h b/src/include/k5-int.h
    10 --- old/src/include/k5-int.h	2015-06-03 18:20:34.239623602 -0500
    10 --- a/src/include/k5-int.h
    11 +++ new/src/include/k5-int.h	2015-06-04 12:29:26.540947840 -0500
    11 +++ b/src/include/k5-int.h
    12 @@ -2294,4 +2294,6 @@
    12 @@ -2353,4 +2353,6 @@ void k5_change_error_message_code(krb5_context ctx, krb5_error_code oldcode,
    13  /* Define a shorter internal name for krb5_set_error_message. */
    13  #define k5_prependmsg krb5_prepend_error_message
    14  #define k5_setmsg krb5_set_error_message
    14  #define k5_wrapmsg krb5_wrap_error_message
    15  
    15  
    16 +uid_t krb5_getuid();
    16 +uid_t krb5_getuid();
    17 +
    17 +
    18  #endif /* _KRB5_INT_H */
    18  #endif /* _KRB5_INT_H */
    19 Only in new/src/lib/gssapi/krb5: .init_sec_context.c.swp
    19 diff --git a/src/lib/gssapi/krb5/init_sec_context.c b/src/lib/gssapi/krb5/init_sec_context.c
    20 diff -u -r old/src/lib/gssapi/krb5/init_sec_context.c new/src/lib/gssapi/krb5/init_sec_context.c
    20 --- a/src/lib/gssapi/krb5/init_sec_context.c
    21 --- old/src/lib/gssapi/krb5/init_sec_context.c	2015-05-08 18:27:02.000000000 -0500
    21 +++ b/src/lib/gssapi/krb5/init_sec_context.c
    22 +++ new/src/lib/gssapi/krb5/init_sec_context.c	2015-06-08 12:44:54.041616737 -0500
       
    23 @@ -104,6 +104,11 @@
    22 @@ -104,6 +104,11 @@
    24  #endif
    23  #endif
    25  #include <stdlib.h>
    24  #include <stdlib.h>
    26  #include <assert.h>
    25  #include <assert.h>
    27 +#include <ctype.h>
    26 +#include <ctype.h>
    30 +krb5_error_code krb5_kt_find_realm(krb5_context, krb5_keytab, krb5_principal,
    29 +krb5_error_code krb5_kt_find_realm(krb5_context, krb5_keytab, krb5_principal,
    31 +                                   krb5_data *);
    30 +                                   krb5_data *);
    32  
    31  
    33  /*
    32  /*
    34   * $Id$
    33   * $Id$
    35 @@ -960,8 +965,11 @@
    34 @@ -962,8 +967,11 @@ krb5_gss_init_sec_context_ext(
    36          /* verify the credential, or use the default */
    35          /* verify the credential, or use the default */
    37          /*SUPPRESS 29*/
    36          /*SUPPRESS 29*/
    38          if (claimant_cred_handle == GSS_C_NO_CREDENTIAL) {
    37          if (claimant_cred_handle == GSS_C_NO_CREDENTIAL) {
    39 -            major_status = kg_get_defcred(minor_status, &defcred);
    38 -            major_status = kg_get_defcred(minor_status, &defcred);
    40 +            major_status = get_default_cred(minor_status, context,
    39 +            major_status = get_default_cred(minor_status, context,
    43              if (major_status && GSS_ERROR(major_status)) {
    42              if (major_status && GSS_ERROR(major_status)) {
    44 +                save_error_info(*minor_status, context);
    43 +                save_error_info(*minor_status, context);
    45                  if (*context_handle == GSS_C_NO_CONTEXT)
    44                  if (*context_handle == GSS_C_NO_CONTEXT)
    46                      krb5_free_context(context);
    45                      krb5_free_context(context);
    47                  return(major_status);
    46                  return(major_status);
    48 @@ -1097,3 +1105,441 @@
    47 @@ -1099,3 +1107,441 @@ krb5_gss_init_sec_context(minor_status, claimant_cred_handle,
    49                                           time_rec,
    48                                           time_rec,
    50                                           &exts);
    49                                           &exts);
    51  }
    50  }
    52 +
    51 +
    53 +/* Solaris Kerberos specific routines start */
    52 +/* Solaris Kerberos specific routines start */
   485 +    }
   484 +    }
   486 +
   485 +
   487 +    /* Otherwise we got non expired creds */
   486 +    /* Otherwise we got non expired creds */
   488 +    return (GSS_S_COMPLETE);
   487 +    return (GSS_S_COMPLETE);
   489 +}
   488 +}
   490 diff -u -r old/src/lib/krb5/keytab/Makefile.in new/src/lib/krb5/keytab/Makefile.in
   489 diff --git a/src/lib/krb5/keytab/Makefile.in b/src/lib/krb5/keytab/Makefile.in
   491 --- old/src/lib/krb5/keytab/Makefile.in	2015-06-03 18:20:34.099323499 -0500
   490 --- a/src/lib/krb5/keytab/Makefile.in
   492 +++ new/src/lib/krb5/keytab/Makefile.in	2015-06-04 11:49:24.702959055 -0500
   491 +++ b/src/lib/krb5/keytab/Makefile.in
   493 @@ -13,6 +13,7 @@
   492 @@ -13,6 +13,7 @@ STLIBOBJS= \
   494  	ktremove.o	\
   493  	ktremove.o	\
   495  	ktfns.o		\
   494  	ktfns.o		\
   496  	kt_file.o	\
   495  	kt_file.o	\
   497 +	kt_findrealm.o	\
   496 +	kt_findrealm.o	\
   498  	kt_memory.o	\
   497  	kt_memory.o	\
   499  	kt_srvtab.o	\
   498  	kt_srvtab.o	\
   500  	read_servi.o	\
   499  	read_servi.o	\
   501 @@ -26,6 +27,7 @@
   500 @@ -26,6 +27,7 @@ OBJS=	\
   502  	$(OUTPRE)ktremove.$(OBJEXT)	\
   501  	$(OUTPRE)ktremove.$(OBJEXT)	\
   503  	$(OUTPRE)ktfns.$(OBJEXT)	\
   502  	$(OUTPRE)ktfns.$(OBJEXT)	\
   504  	$(OUTPRE)kt_file.$(OBJEXT)	\
   503  	$(OUTPRE)kt_file.$(OBJEXT)	\
   505 +	$(OUTPRE)kt_findrealm.$(OBJEXT)	\
   504 +	$(OUTPRE)kt_findrealm.$(OBJEXT)	\
   506  	$(OUTPRE)kt_memory.$(OBJEXT)	\
   505  	$(OUTPRE)kt_memory.$(OBJEXT)	\
   507  	$(OUTPRE)kt_srvtab.$(OBJEXT)	\
   506  	$(OUTPRE)kt_srvtab.$(OBJEXT)	\
   508  	$(OUTPRE)read_servi.$(OBJEXT)	\
   507  	$(OUTPRE)read_servi.$(OBJEXT)	\
   509 @@ -39,6 +41,7 @@
   508 @@ -39,6 +41,7 @@ SRCS=	\
   510  	$(srcdir)/ktremove.c	\
   509  	$(srcdir)/ktremove.c	\
   511  	$(srcdir)/ktfns.c	\
   510  	$(srcdir)/ktfns.c	\
   512  	$(srcdir)/kt_file.c	\
   511  	$(srcdir)/kt_file.c	\
   513 +	$(srcdir)/kt_findrealm.c	\
   512 +	$(srcdir)/kt_findrealm.c	\
   514  	$(srcdir)/kt_memory.c	\
   513  	$(srcdir)/kt_memory.c	\
   515  	$(srcdir)/kt_srvtab.c	\
   514  	$(srcdir)/kt_srvtab.c	\
   516  	$(srcdir)/read_servi.c	\
   515  	$(srcdir)/read_servi.c	\
   517 diff -u -r old/src/lib/krb5/os/expand_path.c new/src/lib/krb5/os/expand_path.c
   516 diff --git a/src/lib/krb5/os/Makefile.in b/src/lib/krb5/os/Makefile.in
   518 --- old/src/lib/krb5/os/expand_path.c	2015-05-08 18:27:02.000000000 -0500
   517 --- a/src/lib/krb5/os/Makefile.in
   519 +++ new/src/lib/krb5/os/expand_path.c	2015-06-04 12:26:15.614110414 -0500
   518 +++ b/src/lib/krb5/os/Makefile.in
   520 @@ -291,7 +291,7 @@
   519 @@ -24,6 +24,7 @@ STLIBOBJS= \
       
   520  	gen_port.o	\
       
   521  	genaddrs.o	\
       
   522  	gen_rname.o	\
       
   523 +	getuid.o	\
       
   524  	hostaddr.o	\
       
   525  	hostrealm.o	\
       
   526  	hostrealm_dns.o \
       
   527 @@ -49,6 +50,7 @@ STLIBOBJS= \
       
   528  	read_msg.o	\
       
   529  	read_pwd.o	\
       
   530  	realm_dom.o	\
       
   531 +	safechown.o	\
       
   532  	sendto_kdc.o	\
       
   533  	sn2princ.o	\
       
   534          thread_safe.o   \
       
   535 @@ -71,6 +73,7 @@ OBJS= \
       
   536  	$(OUTPRE)gen_port.$(OBJEXT)	\
       
   537  	$(OUTPRE)genaddrs.$(OBJEXT)	\
       
   538  	$(OUTPRE)gen_rname.$(OBJEXT)	\
       
   539 +	$(OUTPRE)getuid.$(OBJEXT)	\
       
   540  	$(OUTPRE)hostaddr.$(OBJEXT)	\
       
   541  	$(OUTPRE)hostrealm.$(OBJEXT)	\
       
   542  	$(OUTPRE)hostrealm_dns.$(OBJEXT) \
       
   543 @@ -96,6 +99,7 @@ OBJS= \
       
   544  	$(OUTPRE)read_msg.$(OBJEXT)	\
       
   545  	$(OUTPRE)read_pwd.$(OBJEXT)	\
       
   546  	$(OUTPRE)realm_dom.$(OBJEXT)	\
       
   547 +	$(OUTPRE)safechown.$(OBJEXT)	\
       
   548  	$(OUTPRE)sendto_kdc.$(OBJEXT)	\
       
   549  	$(OUTPRE)sn2princ.$(OBJEXT)	\
       
   550          $(OUTPRE)thread_safe.$(OBJEXT)  \
       
   551 @@ -118,6 +122,7 @@ SRCS= \
       
   552  	$(srcdir)/gen_port.c	\
       
   553  	$(srcdir)/genaddrs.c	\
       
   554  	$(srcdir)/gen_rname.c	\
       
   555 +	$(srcdir)/getuid.c	\
       
   556  	$(srcdir)/hostaddr.c	\
       
   557  	$(srcdir)/hostrealm.c	\
       
   558  	$(srcdir)/hostrealm_dns.c \
       
   559 @@ -143,6 +148,7 @@ SRCS= \
       
   560  	$(srcdir)/read_pwd.c	\
       
   561  	$(srcdir)/realm_dom.c	\
       
   562  	$(srcdir)/port2ip.c	\
       
   563 +	$(srcdir)/safechown.c	\
       
   564  	$(srcdir)/sendto_kdc.c	\
       
   565  	$(srcdir)/sn2princ.c	\
       
   566          $(srcdir)/thread_safe.c \
       
   567 diff --git a/src/lib/krb5/os/expand_path.c b/src/lib/krb5/os/expand_path.c
       
   568 --- a/src/lib/krb5/os/expand_path.c
       
   569 +++ b/src/lib/krb5/os/expand_path.c
       
   570 @@ -291,7 +291,7 @@ static krb5_error_code
   521  expand_userid(krb5_context context, PTYPE param, const char *postfix,
   571  expand_userid(krb5_context context, PTYPE param, const char *postfix,
   522                char **str)
   572                char **str)
   523  {
   573  {
   524 -    if (asprintf(str, "%lu", (unsigned long)getuid()) < 0)
   574 -    if (asprintf(str, "%lu", (unsigned long)getuid()) < 0)
   525 +    if (asprintf(str, "%lu", (unsigned long)krb5_getuid()) < 0)
   575 +    if (asprintf(str, "%lu", (unsigned long)krb5_getuid()) < 0)
   526          return ENOMEM;
   576          return ENOMEM;
   527      return 0;
   577      return 0;
   528  }
   578  }
   529 diff -u -r old/src/lib/krb5/os/Makefile.in new/src/lib/krb5/os/Makefile.in
       
   530 --- old/src/lib/krb5/os/Makefile.in	2015-05-08 18:27:02.000000000 -0500
       
   531 +++ new/src/lib/krb5/os/Makefile.in	2015-06-04 12:00:15.668542036 -0500
       
   532 @@ -20,6 +20,7 @@
       
   533  	gen_port.o	\
       
   534  	genaddrs.o	\
       
   535  	gen_rname.o	\
       
   536 +	getuid.o	\
       
   537  	hostaddr.o	\
       
   538  	hostrealm.o	\
       
   539  	hostrealm_dns.o \
       
   540 @@ -44,6 +45,7 @@
       
   541  	read_msg.o	\
       
   542  	read_pwd.o	\
       
   543  	realm_dom.o	\
       
   544 +	safechown.o	\
       
   545  	sendto_kdc.o	\
       
   546  	sn2princ.o	\
       
   547          thread_safe.o   \
       
   548 @@ -66,6 +68,7 @@
       
   549  	$(OUTPRE)gen_port.$(OBJEXT)	\
       
   550  	$(OUTPRE)genaddrs.$(OBJEXT)	\
       
   551  	$(OUTPRE)gen_rname.$(OBJEXT)	\
       
   552 +	$(OUTPRE)getuid.$(OBJEXT)	\
       
   553  	$(OUTPRE)hostaddr.$(OBJEXT)	\
       
   554  	$(OUTPRE)hostrealm.$(OBJEXT)	\
       
   555  	$(OUTPRE)hostrealm_dns.$(OBJEXT) \
       
   556 @@ -90,6 +93,7 @@
       
   557  	$(OUTPRE)read_msg.$(OBJEXT)	\
       
   558  	$(OUTPRE)read_pwd.$(OBJEXT)	\
       
   559  	$(OUTPRE)realm_dom.$(OBJEXT)	\
       
   560 +	$(OUTPRE)safechown.$(OBJEXT)	\
       
   561  	$(OUTPRE)sendto_kdc.$(OBJEXT)	\
       
   562  	$(OUTPRE)sn2princ.$(OBJEXT)	\
       
   563          $(OUTPRE)thread_safe.$(OBJEXT)  \
       
   564 @@ -112,6 +116,7 @@
       
   565  	$(srcdir)/gen_port.c	\
       
   566  	$(srcdir)/genaddrs.c	\
       
   567  	$(srcdir)/gen_rname.c	\
       
   568 +	$(srcdir)/getuid.c	\
       
   569  	$(srcdir)/hostaddr.c	\
       
   570  	$(srcdir)/hostrealm.c	\
       
   571  	$(srcdir)/hostrealm_dns.c \
       
   572 @@ -136,6 +141,7 @@
       
   573  	$(srcdir)/read_pwd.c	\
       
   574  	$(srcdir)/realm_dom.c	\
       
   575  	$(srcdir)/port2ip.c	\
       
   576 +	$(srcdir)/safechown.c	\
       
   577  	$(srcdir)/sendto_kdc.c	\
       
   578  	$(srcdir)/sn2princ.c	\
       
   579          $(srcdir)/thread_safe.c \