svn rev #24852: trunk/src/lib/gssapi/mechglue/

ghudson@MIT.EDU ghudson at MIT.EDU
Wed Apr 6 16:06:51 EDT 2011


http://src.mit.edu/fisheye/changelog/krb5/?cs=24852
Commit By: ghudson
Log Message:
ticket: 6896
subject: Allow anonymous name to be imported with empty name buffer

When importing a name of type GSS_C_NT_ANONYMOUS, allow the input name
buffer to be null or empty (null is translated into empty before
mechanisms see it).

>From r24820 in users/lhoward/moonshot-mechglue-fixes.



Changed Files:
U   trunk/src/lib/gssapi/mechglue/g_imp_name.c
Modified: trunk/src/lib/gssapi/mechglue/g_imp_name.c
===================================================================
--- trunk/src/lib/gssapi/mechglue/g_imp_name.c	2011-04-06 19:44:07 UTC (rev 24851)
+++ trunk/src/lib/gssapi/mechglue/g_imp_name.c	2011-04-06 20:06:50 UTC (rev 24852)
@@ -65,15 +65,19 @@
     if (input_name_buffer == GSS_C_NO_BUFFER)
 	return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_BAD_NAME);
 
-    if (input_name_buffer->length == 0)
-	return GSS_S_BAD_NAME;
+    if (input_name_type == GSS_C_NO_OID ||
+	!g_OID_equal(input_name_type, GSS_C_NT_ANONYMOUS)) {
+	if (input_name_buffer->length == 0)
+	    return (GSS_S_BAD_NAME);
 
-    if (input_name_buffer->value == NULL)
-	return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_BAD_NAME);
+	if (input_name_buffer->value == NULL)
+	    return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_BAD_NAME);
+    }
 
     return (GSS_S_COMPLETE);
 }
 
+static gss_buffer_desc emptyNameBuffer;
 
 OM_uint32 KRB5_CALLCONV
 gss_import_name(minor_status,
@@ -90,6 +94,9 @@
     gss_union_name_t	union_name;
     OM_uint32		tmp, major_status = GSS_S_FAILURE;
 
+    if (input_name_buffer == GSS_C_NO_BUFFER)
+	input_name_buffer = &emptyNameBuffer;
+
     major_status = val_imp_name_args(minor_status,
 				     input_name_buffer, input_name_type,
 				     output_name);




More information about the cvs-krb5 mailing list