Anonymous names should always compare FALSE in GSS_Compare_name(). If the names
are being compared at the mechglue layer then we should check for
GSS_C_NT_ANONYMOUS.
*/
if (name1->gn_value.value && name2->gn_value.value) {
*name_equal = 1;
- if (!gss_oid_equal(name1->gn_type, name2->gn_type)) {
+ /* RFC 2743: anonymous names always compare false */
+ if (gss_oid_equal(name1->gn_type, GSS_C_NT_ANONYMOUS) ||
+ gss_oid_equal(name2->gn_type, GSS_C_NT_ANONYMOUS) ||
+ !gss_oid_equal(name1->gn_type, name2->gn_type)) {
*name_equal = 0;
} else if (name1->gn_value.length != name2->gn_value.length ||
memcmp(name1->gn_value.value, name2->gn_value.value,