Change struct _krb5_context.os_context into a single element instead of array[1]
authorKen Raeburn <raeburn@mit.edu>
Mon, 21 May 2007 21:58:24 +0000 (21:58 +0000)
committerKen Raeburn <raeburn@mit.edu>
Mon, 21 May 2007 21:58:24 +0000 (21:58 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19554 dc483132-0cff-0310-8789-dd5450dbe970

src/include/k5-int.h
src/lib/krb5/ccache/cc_file.c
src/lib/krb5/ccache/cccursor.c
src/lib/krb5/ccache/ccdefault.c
src/lib/krb5/krb/init_ctx.c
src/lib/krb5/krb/ser_ctx.c
src/lib/krb5/os/ccdefname.c
src/lib/krb5/os/init_os_ctx.c
src/lib/krb5/os/timeofday.c
src/lib/krb5/os/toffset.c
src/lib/krb5/os/ustime.c

index 0b01026ec4d314c4ffc4148e274c837b72284b20..b5791a92660890a984455d14a2c3fdfc44aae45f 100644 (file)
@@ -1203,16 +1203,7 @@ struct _krb5_context {
        unsigned int    in_tkt_ktype_count;
        krb5_enctype    *tgs_ktypes;
        unsigned int    tgs_ktype_count;
-       /* This used to be a void*, but since we always allocate them
-          together (though in different source files), and the types
-          are declared in the same header, might as well just combine
-          them.
-
-          The array[1] is so the existing code treating the field as
-          a pointer will still work.  For cleanliness, it should
-          eventually get changed to a single element instead of an
-          array.  */
-       struct _krb5_os_context os_context[1];
+       struct _krb5_os_context os_context;
        char            *default_realm;
        profile_t       profile;
        void            *db_context;
index c87fef4e014149d12104914e3f4aafe4821a4954..84d278765a0d58b39611549256a639b6a9107511 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/ccache/cc_file.c
  *
- * Copyright 1990,1991,1992,1993,1994,2000,2004 Massachusetts Institute of Technology.
+ * Copyright 1990,1991,1992,1993,1994,2000,2004,2007 Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Original stdio support copyright 1995 by Cygnus Support.
@@ -1205,7 +1205,7 @@ krb5_fcc_close_file (krb5_context context, krb5_fcc_data *data)
 static krb5_error_code
 krb5_fcc_open_file (krb5_context context, krb5_ccache id, int mode)
 {
-    krb5_os_context os_ctx = (krb5_os_context)context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
     krb5_fcc_data *data = (krb5_fcc_data *)id->data;
     krb5_ui_2 fcc_fvno;
     krb5_ui_2 fcc_flen;
index ab6f2a971e2afb24aa1048f180956e7b57dd9c18..f0ae4a832be73a8cbbb309266a28898e923898fe 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/ccache/cccursor.c
  *
- * Copyright 2006 by the Massachusetts Institute of Technology.
+ * Copyright 2006, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -120,7 +120,7 @@ krb5_cccol_cursor_next(
     krb5_os_context os_ctx = NULL;
 
     *ccache = NULL;
-    os_ctx = context->os_context;
+    os_ctx = &context->os_context;
 
     switch (cursor->pos) {
     case CCCURSOR_CONTEXT:
index 3c363229a404768e8eef1d9727dd9ad1040621fb..f256bfd0885af6b901e68a3d726f68506dc425e9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/ccache/ccdefault.c
  *
- * Copyright 1990 by the Massachusetts Institute of Technology.
+ * Copyright 1990, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -45,7 +45,7 @@ krb5_cc_default(krb5_context context, krb5_ccache *ccache)
        if (!context || context->magic != KV5M_CONTEXT)
                return KV5M_CONTEXT;
        
-       os_ctx = context->os_context;
+       os_ctx = &context->os_context;
        
        return krb5_cc_resolve(context, krb5_cc_default_name(context), ccache);
 }
index be20c4067f9fead7b086352c3057bbe11aea82ba..57f5b8fba3296b3835726aabe579449bbd0d3d6c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/krb/init_ctx.c
  *
- * Copyright 1994,1999,2000, 2002, 2003  by the Massachusetts Institute of Technology.
+ * Copyright 1994,1999,2000, 2002, 2003, 2007  by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -533,7 +533,7 @@ krb5_copy_context(krb5_context ctx, krb5_context *nctx_out)
     nctx->ser_ctx_count = 0;
     nctx->ser_ctx = NULL;
     nctx->prompt_types = NULL;
-    nctx->os_context->default_ccname = NULL;
+    nctx->os_context.default_ccname = NULL;
 
     memset(&nctx->preauth_plugins, 0, sizeof(nctx->preauth_plugins));
     nctx->preauth_context = NULL;
@@ -556,10 +556,10 @@ krb5_copy_context(krb5_context ctx, krb5_context *nctx_out)
        goto errout;
     nctx->tgs_ktype_count = ctx->tgs_ktype_count;
 
-    if (ctx->os_context->default_ccname != NULL) {
-       nctx->os_context->default_ccname =
-           strdup(ctx->os_context->default_ccname);
-       if (nctx->os_context->default_ccname == NULL) {
+    if (ctx->os_context.default_ccname != NULL) {
+       nctx->os_context.default_ccname =
+           strdup(ctx->os_context.default_ccname);
+       if (nctx->os_context.default_ccname == NULL) {
            ret = ENOMEM;
            goto errout;
        }
index e76b650d24291cbe870ce29a5851ff37f4813713..8a0088768423bd45638c3c1a0b0aed1fc0197fdf 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/krb/ser_ctx.c
  *
- * Copyright 1995 by the Massachusetts Institute of Technology.
+ * Copyright 1995, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -132,11 +132,10 @@ krb5_context_size(krb5_context kcontext, krb5_pointer arg, size_t *sizep)
        if (context->default_realm)
            required += strlen(context->default_realm);
        /* Calculate size required by os_context, if appropriate */
-       if (context->os_context)
-           kret = krb5_size_opaque(kcontext,
-                                   KV5M_OS_CONTEXT,
-                                   (krb5_pointer) context->os_context,
-                                   &required);
+       kret = krb5_size_opaque(kcontext,
+                               KV5M_OS_CONTEXT,
+                               (krb5_pointer) &context->os_context,
+                               &required);
 
        /* Calculate size required by db_context, if appropriate */
        if (!kret && context->db_context)
@@ -282,14 +281,12 @@ krb5_context_externalize(krb5_context kcontext, krb5_pointer arg, krb5_octet **b
        return (kret);
 
     /* Now handle os_context, if appropriate */
-    if (context->os_context) {
-       kret = krb5_externalize_opaque(kcontext, KV5M_OS_CONTEXT,
-                                      (krb5_pointer) context->os_context,
-                                      &bp, &remain);
-       if (kret)
-           return (kret);
-    }
-       
+    kret = krb5_externalize_opaque(kcontext, KV5M_OS_CONTEXT,
+                                  (krb5_pointer) &context->os_context,
+                                  &bp, &remain);
+    if (kret)
+       return (kret);
+
     /* Now handle database context, if appropriate */
     if (context->db_context) {
        kret = krb5_externalize_opaque(kcontext, KV5M_DB_CONTEXT,
@@ -462,7 +459,7 @@ krb5_context_internalize(krb5_context kcontext, krb5_pointer *argp, krb5_octet *
        /* Put the newly allocated data into the krb5_context
           structure where we're really keeping it these days.  */
        if (osp)
-           *context->os_context = *osp;
+           context->os_context = *osp;
        free(osp);
     }
 
index e5059a5e675f0fc9e16cf2331361335b9ff9198b..d140b08967c6b2bb0620494250fe4ecfd922ec2f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/os/ccdefname.c
  *
- * Copyright 1990 by the Massachusetts Institute of Technology.
+ * Copyright 1990, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -261,7 +261,7 @@ krb5_cc_set_default_name(krb5_context context, const char *name)
     
     if (!err) {
         /* free the old ccname and store the new one */
-        krb5_os_context os_ctx = context->os_context;
+        krb5_os_context os_ctx = &context->os_context;
         if (os_ctx->default_ccname) { free (os_ctx->default_ccname); }
         os_ctx->default_ccname = new_ccname;
         new_ccname = NULL;  /* don't free */
@@ -282,7 +282,7 @@ krb5_cc_default_name(krb5_context context)
     if (!context || context->magic != KV5M_CONTEXT) { err = KV5M_CONTEXT; }
     
     if (!err) {
-        os_ctx = context->os_context;
+        os_ctx = &context->os_context;
         
         if (os_ctx->default_ccname == NULL) {
             /* Default ccache name has not been set yet */
index 88b5ed044074fbef50afbdc2e9292c3c861a0860..16ff0435f721bba3926d9394c9fbf818504eda43 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/os/init_ctx.c
  *
- * Copyright 1994 by the Massachusetts Institute of Technology.
+ * Copyright 1994, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -382,7 +382,7 @@ krb5_os_init_context(krb5_context ctx, krb5_boolean kdc)
     WSADATA wsaData;
 #endif /* _WIN32 */
 
-       os_ctx = ctx->os_context;
+       os_ctx = &ctx->os_context;
        os_ctx->magic = KV5M_OS_CONTEXT;
        os_ctx->time_offset = 0;
        os_ctx->usec_offset = 0;
@@ -480,7 +480,7 @@ krb5_os_free_context(krb5_context ctx)
 {
        krb5_os_context os_ctx;
 
-       os_ctx = ctx->os_context;
+       os_ctx = &ctx->os_context;
        
        if (os_ctx->default_ccname) {
                free(os_ctx->default_ccname);
index dcc75f56648282a6e1b1e30dcdcbf5ecbe3fee22..c65ce6fc0ba0c0b9c633148dea93e392beef5e2f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/os/timeofday.c
  *
- * Copyright 1990 by the Massachusetts Institute of Technology.
+ * Copyright 1990, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -35,7 +35,7 @@
 krb5_error_code KRB5_CALLCONV
 krb5_timeofday(krb5_context context, register krb5_timestamp *timeret)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
     time_t tval;
 
     if (os_ctx->os_flags & KRB5_OS_TOFFSET_TIME) {
index 967b9d62be2aa2012fa72879eb0413d2b9795107..3a06e335b4b2770351d1d32a2d1239812d19d2d5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/os/toffset.c
  *
- * Copyright 1995 by the Massachusetts Institute of Technology.
+ * Copyright 1995, 2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -38,7 +38,7 @@
 krb5_error_code KRB5_CALLCONV
 krb5_set_real_time(krb5_context context, krb5_timestamp seconds, krb5_int32 microseconds)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
     krb5_int32 sec, usec;
     krb5_error_code retval;
 
@@ -60,7 +60,7 @@ krb5_set_real_time(krb5_context context, krb5_timestamp seconds, krb5_int32 micr
 krb5_error_code 
 krb5_set_debugging_time(krb5_context context, krb5_timestamp seconds, krb5_int32 microseconds)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
 
     os_ctx->time_offset = seconds;
     os_ctx->usec_offset = microseconds;
@@ -76,7 +76,7 @@ krb5_set_debugging_time(krb5_context context, krb5_timestamp seconds, krb5_int32
 krb5_error_code 
 krb5_use_natural_time(krb5_context context)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
 
     os_ctx->os_flags &= ~(KRB5_OS_TOFFSET_VALID|KRB5_OS_TOFFSET_TIME);
 
@@ -89,7 +89,7 @@ krb5_use_natural_time(krb5_context context)
 krb5_error_code KRB5_CALLCONV
 krb5_get_time_offsets(krb5_context context, krb5_timestamp *seconds, krb5_int32 *microseconds)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
 
     if (seconds)
        *seconds = os_ctx->time_offset;
@@ -105,7 +105,7 @@ krb5_get_time_offsets(krb5_context context, krb5_timestamp *seconds, krb5_int32
 krb5_error_code 
 krb5_set_time_offsets(krb5_context context, krb5_timestamp seconds, krb5_int32 microseconds)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
 
     os_ctx->time_offset = seconds;
     os_ctx->usec_offset = microseconds;
index ef923d387c2f77a5ce18cdd56c6c08c4bf76e689..bb34c228e65a632af5687609c5603c5c246a8235 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/os/ustime.c
  *
- * Copyright 1990,1991 by the Massachusetts Institute of Technology.
+ * Copyright 1990,1991,2007 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
@@ -36,7 +36,7 @@
 krb5_error_code KRB5_CALLCONV
 krb5_us_timeofday(krb5_context context, krb5_timestamp *seconds, krb5_int32 *microseconds)
 {
-    krb5_os_context os_ctx = context->os_context;
+    krb5_os_context os_ctx = &context->os_context;
     krb5_int32 sec, usec;
     krb5_error_code retval;