diff options
author | Theodore Tso <tytso@mit.edu> | 1998-05-25 01:44:13 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1998-05-25 01:44:13 +0000 |
commit | 63ffc670bff88a81a7664b4b3495e6b3b53218d4 (patch) | |
tree | fa50ce7c0c1a30dc858edae5631f9958fc2ec877 /src/lib/gssapi | |
parent | 8842b6853c2a79892416944dc473238a7965471e (diff) | |
download | krb5-63ffc670bff88a81a7664b4b3495e6b3b53218d4.tar.gz krb5-63ffc670bff88a81a7664b4b3495e6b3b53218d4.tar.xz krb5-63ffc670bff88a81a7664b4b3495e6b3b53218d4.zip |
util_ordering.c (g_order_free):
rel_oid_set.c (generic_gss_release_oid_set):
disp_major_status.c: General lint cleanup.
util_oid.c (g_copy_OID_set): Copy the OID set with entirely dynamic
memory (don't alias the contents of the OID set).
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10576 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi')
-rw-r--r-- | src/lib/gssapi/generic/ChangeLog | 9 | ||||
-rw-r--r-- | src/lib/gssapi/generic/disp_major_status.c | 17 | ||||
-rw-r--r-- | src/lib/gssapi/generic/rel_oid_set.c | 1 | ||||
-rw-r--r-- | src/lib/gssapi/generic/util_oid.c | 30 | ||||
-rw-r--r-- | src/lib/gssapi/generic/util_ordering.c | 1 |
5 files changed, 44 insertions, 14 deletions
diff --git a/src/lib/gssapi/generic/ChangeLog b/src/lib/gssapi/generic/ChangeLog index 13f5718cf..a71aeb1cd 100644 --- a/src/lib/gssapi/generic/ChangeLog +++ b/src/lib/gssapi/generic/ChangeLog @@ -1,3 +1,12 @@ +1998-05-18 Theodore Ts'o <tytso@rsts-11.mit.edu> + + * util_ordering.c (g_order_free): + * rel_oid_set.c (generic_gss_release_oid_set): + * disp_major_status.c: General lint cleanup. + + * util_oid.c (g_copy_OID_set): Copy the OID set with entirely + dynamic memory (don't alias the contents of the OID set). + Wed Apr 1 16:33:27 1998 Tom Yu <tlyu@mit.edu> * disp_major_status.c (g_display_major_status): Fix a typo in diff --git a/src/lib/gssapi/generic/disp_major_status.c b/src/lib/gssapi/generic/disp_major_status.c index df1e3a75c..899592ada 100644 --- a/src/lib/gssapi/generic/disp_major_status.c +++ b/src/lib/gssapi/generic/disp_major_status.c @@ -22,6 +22,7 @@ #include "gssapiP_generic.h" #include <string.h> +#include <stdio.h> /* * $Id$ @@ -135,7 +136,7 @@ static OM_uint32 display_calling(minor_status, code, status_string) { const char *str; - if (str = GSS_CALLING_ERROR_STR(code)) { + if ((str = GSS_CALLING_ERROR_STR(code))) { if (! g_make_string_buffer(str, status_string)) { *minor_status = ENOMEM; return(GSS_S_FAILURE); @@ -160,7 +161,7 @@ static OM_uint32 display_routine(minor_status, code, status_string) { const char *str; - if (str = GSS_ROUTINE_ERROR_STR(code)) { + if ((str = GSS_ROUTINE_ERROR_STR(code))) { if (! g_make_string_buffer(str, status_string)) { *minor_status = ENOMEM; return(GSS_S_FAILURE); @@ -185,7 +186,7 @@ static OM_uint32 display_bit(minor_status, code, status_string) { const char *str; - if (str = GSS_SINFO_STR(code)) { + if ((str = GSS_SINFO_STR(code))) { if (! g_make_string_buffer(str, status_string)) { *minor_status = ENOMEM; return(GSS_S_FAILURE); @@ -234,9 +235,9 @@ OM_uint32 g_display_major_status(minor_status, status_value, /*** do routine error */ if (*message_context == 0) { - if (tmp = GSS_ROUTINE_ERROR(status_value)) { + if ((tmp = GSS_ROUTINE_ERROR(status_value))) { status_value -= tmp; - if (ret = display_routine(minor_status, tmp, status_string)) + if ((ret = display_routine(minor_status, tmp, status_string))) return(ret); *minor_status = 0; if (status_value) { @@ -256,9 +257,9 @@ OM_uint32 g_display_major_status(minor_status, status_value, /*** do calling error */ if (*message_context == 1) { - if (tmp = GSS_CALLING_ERROR(status_value)) { + if ((tmp = GSS_CALLING_ERROR(status_value))) { status_value -= tmp; - if (ret = display_calling(minor_status, tmp, status_string)) + if ((ret = display_calling(minor_status, tmp, status_string))) return(ret); *minor_status = 0; if (status_value) { @@ -295,7 +296,7 @@ OM_uint32 g_display_major_status(minor_status, status_value, for (bit=0; (((OM_uint32) 1)<<bit) != LSBGET(tmp); bit++) ; /* print it */ - if (ret = display_bit(minor_status, bit, status_string)) + if ((ret = display_bit(minor_status, bit, status_string))) return(ret); /* compute the new status_value/message_context */ diff --git a/src/lib/gssapi/generic/rel_oid_set.c b/src/lib/gssapi/generic/rel_oid_set.c index e3a4ff07e..bd7f3cb2c 100644 --- a/src/lib/gssapi/generic/rel_oid_set.c +++ b/src/lib/gssapi/generic/rel_oid_set.c @@ -40,7 +40,6 @@ generic_gss_release_oid_set (minor_status, gss_OID_set * set; { size_t i; - gss_OID oid; if (minor_status) *minor_status = 0; diff --git a/src/lib/gssapi/generic/util_oid.c b/src/lib/gssapi/generic/util_oid.c index 8843a7ff6..60b1e157e 100644 --- a/src/lib/gssapi/generic/util_oid.c +++ b/src/lib/gssapi/generic/util_oid.c @@ -21,6 +21,7 @@ */ #include "gssapiP_generic.h" +#include "string.h" /* * $Id$ @@ -32,7 +33,9 @@ g_copy_OID_set(in, out) gss_OID_set *out; { gss_OID_set copy; - size_t i; + gss_OID new_oid; + size_t i; + size_t len; *out = NULL; @@ -41,15 +44,34 @@ g_copy_OID_set(in, out) return(0); copy->count = in->count; + len = sizeof(gss_OID_desc) * copy->count; if ((copy->elements = - (gss_OID_desc *) xmalloc(sizeof(gss_OID_desc)*copy->count)) == NULL) { + (gss_OID_desc *) xmalloc( len )) == NULL) { xfree(copy); return(0); } - for (i=0; i<in->count; i++) - copy->elements[i] = in->elements[i]; + memset( copy->elements, 0, len ); + + for (i=0; i<in->count; i++) { + len = in->elements[i].length; + new_oid = &(copy->elements[i]); + new_oid->elements = xmalloc( len ); + if ( new_oid->elements == NULL ) { + while( i>0 ) { + i--; + new_oid = &(copy->elements[i]); + if ( new_oid->elements!=NULL ) + xfree( new_oid->elements ); + } + xfree( copy->elements ); + xfree( copy ); + return( 0 ); + } + memcpy( new_oid->elements, in->elements[i].elements, len ); + new_oid->length = len; + } *out = copy; return(1); diff --git a/src/lib/gssapi/generic/util_ordering.c b/src/lib/gssapi/generic/util_ordering.c index b5b84234c..21a8b0641 100644 --- a/src/lib/gssapi/generic/util_ordering.c +++ b/src/lib/gssapi/generic/util_ordering.c @@ -168,7 +168,6 @@ void g_order_free(void **vqueue) { queue *q; - int i; q = (queue *) (*vqueue); |