summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1998-05-25 01:44:13 +0000
committerTheodore Tso <tytso@mit.edu>1998-05-25 01:44:13 +0000
commit63ffc670bff88a81a7664b4b3495e6b3b53218d4 (patch)
treefa50ce7c0c1a30dc858edae5631f9958fc2ec877 /src/lib/gssapi
parent8842b6853c2a79892416944dc473238a7965471e (diff)
downloadkrb5-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/ChangeLog9
-rw-r--r--src/lib/gssapi/generic/disp_major_status.c17
-rw-r--r--src/lib/gssapi/generic/rel_oid_set.c1
-rw-r--r--src/lib/gssapi/generic/util_oid.c30
-rw-r--r--src/lib/gssapi/generic/util_ordering.c1
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);