components/krb5/patches/053-kernel-mech.patch
changeset 6599 1d033832c5e7
parent 5490 9bf0bc57423a
child 6978 14cbeb78966a
equal deleted inserted replaced
6598:97c29bc92758 6599:1d033832c5e7
    26 #
    26 #
    27 # Note: That this patch is specific to the Solaris kernel implementation and
    27 # Note: That this patch is specific to the Solaris kernel implementation and
    28 # therefore should not be considered as an upstream contribution to MIT.
    28 # therefore should not be considered as an upstream contribution to MIT.
    29 # Patch source: in-house
    29 # Patch source: in-house
    30 #
    30 #
    31 diff -pur old/src/lib/gssapi/generic/gssapiP_generic.h new/src/lib/gssapi/generic/gssapiP_generic.h
    31 diff --git a/src/lib/gssapi/generic/Makefile.in b/src/lib/gssapi/generic/Makefile.in
    32 --- old/src/lib/gssapi/generic/gssapiP_generic.h	2015-08-24 23:54:31.967668939 -0600
    32 --- a/src/lib/gssapi/generic/Makefile.in
    33 +++ new/src/lib/gssapi/generic/gssapiP_generic.h	2015-08-24 23:53:45.867622444 -0600
    33 +++ b/src/lib/gssapi/generic/Makefile.in
    34 @@ -116,6 +116,12 @@
       
    35  #define g_seqstate_size         gssint_g_seqstate_size
       
    36  #define g_seqstate_externalize  gssint_g_seqstate_externalize
       
    37  #define g_seqstate_internalize  gssint_g_seqstate_internalize
       
    38 +#define	g_order_init		gssint_g_order_init
       
    39 +#define	g_order_check		gssint_g_order_check
       
    40 +#define	g_order_free		gssint_g_order_free
       
    41 +#define	g_queue_size		gssint_g_queue_size
       
    42 +#define	g_queue_externalize	gssint_g_queue_externalize
       
    43 +#define	g_queue_internalize	gssint_g_queue_internalize
       
    44  #define g_canonicalize_host     gssint_g_canonicalize_host
       
    45  #define g_local_host_name       gssint_g_local_host_name
       
    46  #define g_strdup                gssint_g_strdup
       
    47 @@ -185,6 +191,19 @@ long g_seqstate_externalize(g_seqnum_sta
       
    48  long g_seqstate_internalize(g_seqnum_state *state_out, unsigned char **buf,
       
    49                              size_t *lenremain);
       
    50  
       
    51 +gss_int32 g_order_init (void **queue, uint64_t seqnum,
       
    52 +				  int do_replay, int do_sequence, int wide);
       
    53 +
       
    54 +gss_int32 g_order_check (void **queue, uint64_t seqnum);
       
    55 +
       
    56 +void g_order_free (void **queue);
       
    57 +
       
    58 +gss_uint32 g_queue_size(void *vqueue, size_t *sizep);
       
    59 +gss_uint32 g_queue_externalize(void *vqueue, unsigned char **buf,
       
    60 +			       size_t *lenremain);
       
    61 +gss_uint32 g_queue_internalize(void **vqueue, unsigned char **buf,
       
    62 +			       size_t *lenremain);
       
    63 +
       
    64  char *g_strdup (char *str);
       
    65  
       
    66  /** declarations of internal name mechanism functions **/
       
    67 diff -pur old/src/lib/gssapi/generic/Makefile.in new/src/lib/gssapi/generic/Makefile.in
       
    68 --- old/src/lib/gssapi/generic/Makefile.in	2015-08-24 23:54:31.968226730 -0600
       
    69 +++ new/src/lib/gssapi/generic/Makefile.in	2015-08-24 23:53:45.871579061 -0600
       
    70 @@ -66,6 +66,7 @@ SRCS = \
    34 @@ -66,6 +66,7 @@ SRCS = \
    71  	$(srcdir)/util_buffer.c \
    35  	$(srcdir)/util_buffer.c \
    72  	$(srcdir)/util_buffer_set.c \
    36  	$(srcdir)/util_buffer_set.c \
    73  	$(srcdir)/util_errmap.c \
    37  	$(srcdir)/util_errmap.c \
    74 +	$(srcdir)/util_ordering.c \
    38 +	$(srcdir)/util_ordering.c \
    89  	util_errmap.o \
    53  	util_errmap.o \
    90 +	util_ordering.o \
    54 +	util_ordering.o \
    91  	util_set.o \
    55  	util_set.o \
    92  	util_seqstate.o \
    56  	util_seqstate.o \
    93  	util_token.o \
    57  	util_token.o \
    94 diff -pur old/src/lib/gssapi/krb5/accept_sec_context.c new/src/lib/gssapi/krb5/accept_sec_context.c
    58 diff --git a/src/lib/gssapi/generic/deps b/src/lib/gssapi/generic/deps
    95 --- old/src/lib/gssapi/krb5/accept_sec_context.c	2015-08-24 23:54:31.971814896 -0600
    59 --- a/src/lib/gssapi/generic/deps
    96 +++ new/src/lib/gssapi/krb5/accept_sec_context.c	2015-08-24 23:53:45.848389600 -0600
    60 +++ b/src/lib/gssapi/generic/deps
    97 @@ -441,6 +441,7 @@ kg_accept_krb5(minor_status, context_han
    61 @@ -64,6 +64,13 @@ util_errmap.so util_errmap.po $(OUTPRE)util_errmap.$(OBJEXT): \
       
    62    $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/krb5.h \
       
    63    errmap.h gssapiP_generic.h gssapi_err_generic.h gssapi_ext.h \
       
    64    gssapi_generic.h util_errmap.c
       
    65 +util_ordering.so util_ordering.po $(OUTPRE)util_ordering.$(OBJEXT): \
       
    66 +  $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/gssapi/gssapi.h \
       
    67 +  $(BUILDTOP)/include/gssapi/gssapi_alloc.h $(COM_ERR_DEPS) \
       
    68 +  $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-platform.h \
       
    69 +  $(top_srcdir)/include/k5-thread.h gssapiP_generic.h \
       
    70 +  gssapi_err_generic.h gssapi_ext.h gssapi_generic.h \
       
    71 +  util_ordering.c
       
    72  util_set.so util_set.po $(OUTPRE)util_set.$(OBJEXT): \
       
    73    $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/gssapi/gssapi.h \
       
    74    $(BUILDTOP)/include/gssapi/gssapi_alloc.h $(COM_ERR_DEPS) \
       
    75 diff --git a/src/lib/gssapi/generic/gssapiP_generic.h b/src/lib/gssapi/generic/gssapiP_generic.h
       
    76 --- a/src/lib/gssapi/generic/gssapiP_generic.h
       
    77 +++ b/src/lib/gssapi/generic/gssapiP_generic.h
       
    78 @@ -116,6 +116,12 @@
       
    79  #define g_seqstate_size         gssint_g_seqstate_size
       
    80  #define g_seqstate_externalize  gssint_g_seqstate_externalize
       
    81  #define g_seqstate_internalize  gssint_g_seqstate_internalize
       
    82 +#define	g_order_init		gssint_g_order_init
       
    83 +#define	g_order_check		gssint_g_order_check
       
    84 +#define	g_order_free		gssint_g_order_free
       
    85 +#define	g_queue_size		gssint_g_queue_size
       
    86 +#define	g_queue_externalize	gssint_g_queue_externalize
       
    87 +#define	g_queue_internalize	gssint_g_queue_internalize
       
    88  #define g_canonicalize_host     gssint_g_canonicalize_host
       
    89  #define g_local_host_name       gssint_g_local_host_name
       
    90  #define g_strdup                gssint_g_strdup
       
    91 @@ -185,6 +191,19 @@ long g_seqstate_externalize(g_seqnum_state state, unsigned char **buf,
       
    92  long g_seqstate_internalize(g_seqnum_state *state_out, unsigned char **buf,
       
    93                              size_t *lenremain);
       
    94  
       
    95 +gss_int32 g_order_init (void **queue, uint64_t seqnum,
       
    96 +				  int do_replay, int do_sequence, int wide);
       
    97 +
       
    98 +gss_int32 g_order_check (void **queue, uint64_t seqnum);
       
    99 +
       
   100 +void g_order_free (void **queue);
       
   101 +
       
   102 +gss_uint32 g_queue_size(void *vqueue, size_t *sizep);
       
   103 +gss_uint32 g_queue_externalize(void *vqueue, unsigned char **buf,
       
   104 +			       size_t *lenremain);
       
   105 +gss_uint32 g_queue_internalize(void **vqueue, unsigned char **buf,
       
   106 +			       size_t *lenremain);
       
   107 +
       
   108  char *g_strdup (char *str);
       
   109  
       
   110  /** declarations of internal name mechanism functions **/
       
   111 diff --git a/src/lib/gssapi/krb5/accept_sec_context.c b/src/lib/gssapi/krb5/accept_sec_context.c
       
   112 --- a/src/lib/gssapi/krb5/accept_sec_context.c
       
   113 +++ b/src/lib/gssapi/krb5/accept_sec_context.c
       
   114 @@ -435,6 +435,7 @@ kg_accept_krb5(minor_status, context_handle,
    98      char *sptr;
   115      char *sptr;
    99      OM_uint32 tmp;
   116      OM_uint32 tmp;
   100      size_t md5len;
   117      size_t md5len;
   101 +    int bigend;
   118 +    int bigend;
   102      krb5_gss_cred_id_t cred = 0;
   119      krb5_gss_cred_id_t cred = 0;
   103      krb5_data ap_rep, ap_req;
   120      krb5_data ap_rep, ap_req;
   104      unsigned int i;
   121      unsigned int i;
   105 @@ -704,6 +705,7 @@ kg_accept_krb5(minor_status, context_han
   122 @@ -698,6 +699,7 @@ kg_accept_krb5(minor_status, context_handle,
   106          }
   123          }
   107  
   124  
   108          gss_flags = GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG;
   125          gss_flags = GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG;
   109 +	bigend = 0;
   126 +	bigend = 0;
   110      } else {
   127      } else {
   111          /* gss krb5 v1 */
   128          /* gss krb5 v1 */
   112  
   129  
   113 @@ -731,14 +733,22 @@ kg_accept_krb5(minor_status, context_han
   130 @@ -725,14 +727,22 @@ kg_accept_krb5(minor_status, context_handle,
   114          }
   131          }
   115  
   132  
   116          ptr = (unsigned char *) authdat->checksum->contents;
   133          ptr = (unsigned char *) authdat->checksum->contents;
   117 +	bigend = 0;
   134 +	bigend = 0;
   118  
   135  
   137 +	    }
   154 +	    }
   138 +	}
   155 +	}
   139  
   156  
   140          /*
   157          /*
   141            The following section of code attempts to implement the
   158            The following section of code attempts to implement the
   142 @@ -779,7 +789,7 @@ kg_accept_krb5(minor_status, context_han
   159 @@ -773,7 +783,7 @@ kg_accept_krb5(minor_status, context_handle,
   143  
   160  
   144          /* Read the token flags.  Remember if GSS_C_DELEG_FLAG was set, but
   161          /* Read the token flags.  Remember if GSS_C_DELEG_FLAG was set, but
   145           * mask it out until we actually read a delegated credential. */
   162           * mask it out until we actually read a delegated credential. */
   146 -        TREAD_INT(ptr, gss_flags, 0);
   163 -        TREAD_INT(ptr, gss_flags, 0);
   147 +        TREAD_INT(ptr, gss_flags, bigend);
   164 +        TREAD_INT(ptr, gss_flags, bigend);
   148          token_deleg_flag = (gss_flags & GSS_C_DELEG_FLAG);
   165          token_deleg_flag = (gss_flags & GSS_C_DELEG_FLAG);
   149          gss_flags &= ~GSS_C_DELEG_FLAG;
   166          gss_flags &= ~GSS_C_DELEG_FLAG;
   150  
   167  
   151 @@ -788,8 +798,8 @@ kg_accept_krb5(minor_status, context_han
   168 @@ -782,8 +792,8 @@ kg_accept_krb5(minor_status, context_handle,
   152          i = authdat->checksum->length - 24;
   169          i = authdat->checksum->length - 24;
   153          if (i && token_deleg_flag) {
   170          if (i && token_deleg_flag) {
   154              if (i >= 4) {
   171              if (i >= 4) {
   155 -                TREAD_INT16(ptr, option_id, 0);
   172 -                TREAD_INT16(ptr, option_id, 0);
   156 -                TREAD_INT16(ptr, option.length, 0);
   173 -                TREAD_INT16(ptr, option.length, 0);
   157 +                TREAD_INT16(ptr, option_id, bigend);
   174 +                TREAD_INT16(ptr, option_id, bigend);
   158 +                TREAD_INT16(ptr, option.length, bigend);
   175 +                TREAD_INT16(ptr, option.length, bigend);
   159                  i -= 4;
   176                  i -= 4;
   160  
   177  
   161                  if (i < option.length) {
   178                  if (i < option.length) {
   162 @@ -886,6 +896,7 @@ kg_accept_krb5(minor_status, context_han
   179 @@ -880,6 +890,7 @@ kg_accept_krb5(minor_status, context_handle,
   163                                        GSS_C_DCE_STYLE | GSS_C_IDENTIFY_FLAG |
   180                                        GSS_C_DCE_STYLE | GSS_C_IDENTIFY_FLAG |
   164                                        GSS_C_EXTENDED_ERROR_FLAG)));
   181                                        GSS_C_EXTENDED_ERROR_FLAG)));
   165      ctx->seed_init = 0;
   182      ctx->seed_init = 0;
   166 +    ctx->big_endian = bigend;
   183 +    ctx->big_endian = bigend;
   167      ctx->cred_rcache = cred_rcache;
   184      ctx->cred_rcache = cred_rcache;
   168  
   185  
   169      /* XXX move this into gss_name_t */
   186      /* XXX move this into gss_name_t */
   170 diff -pur old/src/lib/gssapi/krb5/gssapi_krb5.c new/src/lib/gssapi/krb5/gssapi_krb5.c
   187 diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h
   171 --- old/src/lib/gssapi/krb5/gssapi_krb5.c	2015-08-24 23:54:31.974446790 -0600
   188 --- a/src/lib/gssapi/krb5/gssapiP_krb5.h
   172 +++ new/src/lib/gssapi/krb5/gssapi_krb5.c	2015-08-24 23:53:45.847910701 -0600
   189 +++ b/src/lib/gssapi/krb5/gssapiP_krb5.h
   173 @@ -938,6 +938,7 @@ static int gss_krb5mechglue_init(void)
   190 @@ -205,6 +205,7 @@ typedef struct _krb5_gss_ctx_id_rec {
   174  
       
   175      mech_krb5.mechNameStr = "kerberos_v5";
       
   176      mech_krb5.mech_type = (gss_OID)gss_mech_krb5;
       
   177 +    mech_krb5.kmodName = "kmech_krb5";
       
   178      gssint_register_mechinfo(&mech_krb5);
       
   179  
       
   180      mech_krb5.mechNameStr = "kerberos_v5_old";
       
   181 diff -pur old/src/lib/gssapi/krb5/gssapiP_krb5.h new/src/lib/gssapi/krb5/gssapiP_krb5.h
       
   182 --- old/src/lib/gssapi/krb5/gssapiP_krb5.h	2015-08-24 23:54:31.974815169 -0600
       
   183 +++ new/src/lib/gssapi/krb5/gssapiP_krb5.h	2015-08-24 23:53:45.845950677 -0600
       
   184 @@ -204,6 +204,7 @@ typedef struct _krb5_gss_ctx_id_rec {
       
   185      krb5_magic magic;
   191      krb5_magic magic;
   186      unsigned int initiate : 1;   /* nonzero if initiating, zero if accepting */
   192      unsigned int initiate : 1;   /* nonzero if initiating, zero if accepting */
   187      unsigned int established : 1;
   193      unsigned int established : 1;
   188 +    unsigned int big_endian : 1;
   194 +    unsigned int big_endian : 1;
   189      unsigned int have_acceptor_subkey : 1;
   195      unsigned int have_acceptor_subkey : 1;
   190      unsigned int seed_init : 1;  /* XXX tested but never actually set */
   196      unsigned int seed_init : 1;  /* XXX tested but never actually set */
   191      unsigned int terminated : 1;
   197      unsigned int terminated : 1;
   192 diff -pur old/src/lib/gssapi/krb5/import_sec_context.c new/src/lib/gssapi/krb5/import_sec_context.c
   198 diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c
   193 --- old/src/lib/gssapi/krb5/import_sec_context.c	2015-08-24 23:54:31.969983292 -0600
   199 --- a/src/lib/gssapi/krb5/gssapi_krb5.c
   194 +++ new/src/lib/gssapi/krb5/import_sec_context.c	2015-08-24 23:53:45.845397252 -0600
   200 +++ b/src/lib/gssapi/krb5/gssapi_krb5.c
   195 @@ -107,7 +107,6 @@ krb5_gss_import_sec_context(minor_status
   201 @@ -1046,6 +1046,7 @@ static int gss_krb5mechglue_init(void)
       
   202  
       
   203      mech_krb5.mechNameStr = "kerberos_v5";
       
   204      mech_krb5.mech_type = (gss_OID)gss_mech_krb5;
       
   205 +    mech_krb5.kmodName = "kmech_krb5";
       
   206      gssint_register_mechinfo(&mech_krb5);
       
   207  
       
   208      mech_krb5.mechNameStr = "kerberos_v5_old";
       
   209 diff --git a/src/lib/gssapi/krb5/import_sec_context.c b/src/lib/gssapi/krb5/import_sec_context.c
       
   210 --- a/src/lib/gssapi/krb5/import_sec_context.c
       
   211 +++ b/src/lib/gssapi/krb5/import_sec_context.c
       
   212 @@ -107,7 +107,6 @@ krb5_gss_import_sec_context(minor_status, interprocess_token, context_handle)
   196          krb5_free_context(context);
   213          krb5_free_context(context);
   197          return(GSS_S_FAILURE);
   214          return(GSS_S_FAILURE);
   198      }
   215      }
   199 -    krb5_free_context(context);
   216 -    krb5_free_context(context);
   200  
   217  
   201      ctx->mech_used = krb5_gss_convert_static_mech_oid(ctx->mech_used);
   218      ctx->mech_used = krb5_gss_convert_static_mech_oid(ctx->mech_used);
   202  
   219  
   203 diff -pur old/src/lib/gssapi/krb5/ser_sctx.c new/src/lib/gssapi/krb5/ser_sctx.c
   220 diff --git a/src/lib/gssapi/krb5/ser_sctx.c b/src/lib/gssapi/krb5/ser_sctx.c
   204 --- old/src/lib/gssapi/krb5/ser_sctx.c	2015-08-24 23:54:31.969825966 -0600
   221 --- a/src/lib/gssapi/krb5/ser_sctx.c
   205 +++ new/src/lib/gssapi/krb5/ser_sctx.c	2015-08-24 23:53:45.847452068 -0600
   222 +++ b/src/lib/gssapi/krb5/ser_sctx.c
   206 @@ -150,6 +150,22 @@ kg_oid_size(kcontext, arg, sizep)
   223 @@ -150,6 +150,22 @@ kg_oid_size(kcontext, arg, sizep)
   207  }
   224  }
   208  
   225  
   209  static krb5_error_code
   226  static krb5_error_code
   210 +kg_queue_externalize(kcontext, arg, buffer, lenremain)
   227 +kg_queue_externalize(kcontext, arg, buffer, lenremain)
   224 +
   241 +
   225 +static krb5_error_code
   242 +static krb5_error_code
   226  kg_seqstate_externalize(kcontext, arg, buffer, lenremain)
   243  kg_seqstate_externalize(kcontext, arg, buffer, lenremain)
   227      krb5_context        kcontext;
   244      krb5_context        kcontext;
   228      g_seqnum_state      arg;
   245      g_seqnum_state      arg;
   229 @@ -166,6 +182,48 @@ kg_seqstate_externalize(kcontext, arg, b
   246 @@ -166,6 +182,48 @@ kg_seqstate_externalize(kcontext, arg, buffer, lenremain)
   230  }
   247  }
   231  
   248  
   232  static krb5_error_code
   249  static krb5_error_code
   233 +kg_queue_internalize(kcontext, argp, buffer, lenremain)
   250 +kg_queue_internalize(kcontext, argp, buffer, lenremain)
   234 +    krb5_context        kcontext;
   251 +    krb5_context        kcontext;
   273 +
   290 +
   274 +static krb5_error_code
   291 +static krb5_error_code
   275  kg_seqstate_internalize(kcontext, argp, buffer, lenremain)
   292  kg_seqstate_internalize(kcontext, argp, buffer, lenremain)
   276      krb5_context        kcontext;
   293      krb5_context        kcontext;
   277      g_seqnum_state      *argp;
   294      g_seqnum_state      *argp;
   278 @@ -208,6 +266,26 @@ kg_seqstate_internalize(kcontext, argp,
   295 @@ -208,6 +266,26 @@ kg_seqstate_internalize(kcontext, argp, buffer, lenremain)
   279  }
   296  }
   280  
   297  
   281  static krb5_error_code
   298  static krb5_error_code
   282 +kg_queue_size(kcontext, arg, sizep)
   299 +kg_queue_size(kcontext, arg, sizep)
   283 +    krb5_context        kcontext;
   300 +    krb5_context        kcontext;
   333          }
   350          }
   334 +#endif /* PROVIDE_KERNEL_IMPORT */
   351 +#endif /* PROVIDE_KERNEL_IMPORT */
   335          *sizep += required;
   352          *sizep += required;
   336      }
   353      }
   337      return(kret);
   354      return(kret);
   338 @@ -400,6 +482,8 @@ kg_ctx_externalize(kcontext, arg, buffer
   355 @@ -400,6 +482,8 @@ kg_ctx_externalize(kcontext, arg, buffer, lenremain)
   339                                         &bp, &remain);
   356                                         &bp, &remain);
   340              (void) krb5_ser_pack_int32((krb5_int32) ctx->established,
   357              (void) krb5_ser_pack_int32((krb5_int32) ctx->established,
   341                                         &bp, &remain);
   358                                         &bp, &remain);
   342 +	    (void) krb5_ser_pack_int32((krb5_int32) ctx->big_endian,
   359 +	    (void) krb5_ser_pack_int32((krb5_int32) ctx->big_endian,
   343 +				       &bp, &remain);
   360 +				       &bp, &remain);
   344              (void) krb5_ser_pack_int32((krb5_int32) ctx->have_acceptor_subkey,
   361              (void) krb5_ser_pack_int32((krb5_int32) ctx->have_acceptor_subkey,
   345                                         &bp, &remain);
   362                                         &bp, &remain);
   346              (void) krb5_ser_pack_int32((krb5_int32) ctx->seed_init,
   363              (void) krb5_ser_pack_int32((krb5_int32) ctx->seed_init,
   347 @@ -468,9 +552,10 @@ kg_ctx_externalize(kcontext, arg, buffer
   364 @@ -468,9 +552,10 @@ kg_ctx_externalize(kcontext, arg, buffer, lenremain)
   348                                                 &bp, &remain);
   365                                                 &bp, &remain);
   349  
   366  
   350              if (!kret && ctx->seqstate)
   367              if (!kret && ctx->seqstate)
   351 -                kret = kg_seqstate_externalize(kcontext,
   368 -                kret = kg_seqstate_externalize(kcontext,
   352 +                kret = kg_queue_externalize(kcontext,
   369 +                kret = kg_queue_externalize(kcontext,
   354  
   371  
   355 +#if 0 /* PROVIDE_KERNEL_IMPORT */
   372 +#if 0 /* PROVIDE_KERNEL_IMPORT */
   356              if (!kret)
   373              if (!kret)
   357                  kret = krb5_externalize_opaque(kcontext,
   374                  kret = krb5_externalize_opaque(kcontext,
   358                                                 KV5M_CONTEXT,
   375                                                 KV5M_CONTEXT,
   359 @@ -482,6 +567,7 @@ kg_ctx_externalize(kcontext, arg, buffer
   376 @@ -482,6 +567,7 @@ kg_ctx_externalize(kcontext, arg, buffer, lenremain)
   360                                                 KV5M_AUTH_CONTEXT,
   377                                                 KV5M_AUTH_CONTEXT,
   361                                                 (krb5_pointer) ctx->auth_context,
   378                                                 (krb5_pointer) ctx->auth_context,
   362                                                 &bp, &remain);
   379                                                 &bp, &remain);
   363 +#endif /* PROVIDE_KERNEL_IMPORT */
   380 +#endif /* PROVIDE_KERNEL_IMPORT */
   364  
   381  
   365              if (!kret)
   382              if (!kret)
   366                  kret = krb5_ser_pack_int32((krb5_int32) ctx->proto,
   383                  kret = krb5_ser_pack_int32((krb5_int32) ctx->proto,
   367 @@ -501,6 +587,7 @@ kg_ctx_externalize(kcontext, arg, buffer
   384 @@ -501,6 +587,7 @@ kg_ctx_externalize(kcontext, arg, buffer, lenremain)
   368              if (!kret)
   385              if (!kret)
   369                  kret = krb5_ser_pack_int32((krb5_int32) ctx->cred_rcache,
   386                  kret = krb5_ser_pack_int32((krb5_int32) ctx->cred_rcache,
   370                                             &bp, &remain);
   387                                             &bp, &remain);
   371 +#if 0 	/* PROVIDE_KERNEL_IMPORT */
   388 +#if 0 	/* PROVIDE_KERNEL_IMPORT */
   372              if (!kret) {
   389              if (!kret) {
   373                  krb5_int32 i = 0;
   390                  krb5_int32 i = 0;
   374  
   391  
   375 @@ -534,6 +621,7 @@ kg_ctx_externalize(kcontext, arg, buffer
   392 @@ -534,6 +621,7 @@ kg_ctx_externalize(kcontext, arg, buffer, lenremain)
   376                                                     &remain);
   393                                                     &remain);
   377                  }
   394                  }
   378              }
   395              }
   379 +#endif /* PROVIDE_KERNEL_IMPORT */
   396 +#endif /* PROVIDE_KERNEL_IMPORT */
   380              /* trailer */
   397              /* trailer */
   381              if (!kret)
   398              if (!kret)
   382                  kret = krb5_ser_pack_int32(KG_CONTEXT, &bp, &remain);
   399                  kret = krb5_ser_pack_int32(KG_CONTEXT, &bp, &remain);
   383 @@ -611,6 +699,8 @@ kg_ctx_internalize(kcontext, argp, buffe
   400 @@ -611,6 +699,8 @@ kg_ctx_internalize(kcontext, argp, buffer, lenremain)
   384              (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   401              (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   385              ctx->established = (int) ibuf;
   402              ctx->established = (int) ibuf;
   386              (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   403              (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   387 +            ctx->big_endian = (int) ibuf;
   404 +            ctx->big_endian = (int) ibuf;
   388 +            (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   405 +            (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   389              ctx->have_acceptor_subkey = (int) ibuf;
   406              ctx->have_acceptor_subkey = (int) ibuf;
   390              (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   407              (void) krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   391              ctx->seed_init = (int) ibuf;
   408              ctx->seed_init = (int) ibuf;
   392 @@ -695,12 +785,13 @@ kg_ctx_internalize(kcontext, argp, buffe
   409 @@ -695,12 +785,13 @@ kg_ctx_internalize(kcontext, argp, buffer, lenremain)
   393              }
   410              }
   394  
   411  
   395              if (!kret) {
   412              if (!kret) {
   396 -                kret = kg_seqstate_internalize(kcontext, &ctx->seqstate,
   413 -                kret = kg_seqstate_internalize(kcontext, &ctx->seqstate,
   397 +                kret = kg_queue_internalize(kcontext, &ctx->seqstate,
   414 +                kret = kg_queue_internalize(kcontext, &ctx->seqstate,
   402  
   419  
   403 +#if 0 /* PROVIDE_KERNEL_IMPORT */
   420 +#if 0 /* PROVIDE_KERNEL_IMPORT */
   404              if (!kret)
   421              if (!kret)
   405                  kret = krb5_internalize_opaque(kcontext,
   422                  kret = krb5_internalize_opaque(kcontext,
   406                                                 KV5M_CONTEXT,
   423                                                 KV5M_CONTEXT,
   407 @@ -712,6 +803,7 @@ kg_ctx_internalize(kcontext, argp, buffe
   424 @@ -712,6 +803,7 @@ kg_ctx_internalize(kcontext, argp, buffer, lenremain)
   408                                                 KV5M_AUTH_CONTEXT,
   425                                                 KV5M_AUTH_CONTEXT,
   409                                                 (krb5_pointer *) &ctx->auth_context,
   426                                                 (krb5_pointer *) &ctx->auth_context,
   410                                                 &bp, &remain);
   427                                                 &bp, &remain);
   411 +#endif /* PROVIDE_KERNEL_IMPORT */
   428 +#endif /* PROVIDE_KERNEL_IMPORT */
   412  
   429  
   413              if (!kret)
   430              if (!kret)
   414                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   431                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   415 @@ -731,6 +823,7 @@ kg_ctx_internalize(kcontext, argp, buffe
   432 @@ -731,6 +823,7 @@ kg_ctx_internalize(kcontext, argp, buffer, lenremain)
   416              if (!kret)
   433              if (!kret)
   417                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   434                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   418              ctx->cred_rcache = ibuf;
   435              ctx->cred_rcache = ibuf;
   419 +#if 0 /* PROVIDE_KERNEL_IMPORT */
   436 +#if 0 /* PROVIDE_KERNEL_IMPORT */
   420              /* authdata */
   437              /* authdata */
   421              if (!kret)
   438              if (!kret)
   422                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   439                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   423 @@ -769,6 +862,7 @@ kg_ctx_internalize(kcontext, argp, buffe
   440 @@ -769,6 +862,7 @@ kg_ctx_internalize(kcontext, argp, buffer, lenremain)
   424                          kret = 0;
   441                          kret = 0;
   425                  }
   442                  }
   426              }
   443              }
   427 +#endif /* PROVIDE_KERNEL_IMPORT */
   444 +#endif /* PROVIDE_KERNEL_IMPORT */
   428              /* Get trailer */
   445              /* Get trailer */
   429              if (!kret)
   446              if (!kret)
   430                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   447                  kret = krb5_ser_unpack_int32(&ibuf, &bp, &remain);
   431 --- krb5-1.13.3/src/lib/gssapi/generic/deps
       
   432 +++ ./deps
       
   433 @@ -64,6 +64,13 @@ util_errmap.so util_errmap.po $(OUTPRE)u
       
   434    $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/krb5.h \
       
   435    errmap.h gssapiP_generic.h gssapi_err_generic.h gssapi_ext.h \
       
   436    gssapi_generic.h util_errmap.c
       
   437 +util_ordering.so util_ordering.po $(OUTPRE)util_ordering.$(OBJEXT): \
       
   438 +  $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/gssapi/gssapi.h \
       
   439 +  $(BUILDTOP)/include/gssapi/gssapi_alloc.h $(COM_ERR_DEPS) \
       
   440 +  $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-platform.h \
       
   441 +  $(top_srcdir)/include/k5-thread.h gssapiP_generic.h \
       
   442 +  gssapi_err_generic.h gssapi_ext.h gssapi_generic.h \
       
   443 +  util_ordering.c
       
   444  util_set.so util_set.po $(OUTPRE)util_set.$(OBJEXT): \
       
   445    $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/gssapi/gssapi.h \
       
   446    $(BUILDTOP)/include/gssapi/gssapi_alloc.h $(COM_ERR_DEPS) \