From b3fe263e5dc8b362aec2ee8c35d5528a04cb8fe2 Mon Sep 17 00:00:00 2001 From: John Carr Date: Fri, 21 Aug 1992 02:57:41 +0000 Subject: Principal type changes git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2347 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/krb5/krb/princ_comp.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src/lib/krb5/krb/princ_comp.c') diff --git a/src/lib/krb5/krb/princ_comp.c b/src/lib/krb5/krb/princ_comp.c index 4fa3f91694..4e8c9f531c 100644 --- a/src/lib/krb5/krb/princ_comp.c +++ b/src/lib/krb5/krb/princ_comp.c @@ -34,26 +34,28 @@ static char rcsid_princ_comp_c[] = #include #include -#ifndef min -#define min(a,b) ((a) < (b) ? (a) : (b)) -#endif /* min */ - krb5_boolean krb5_principal_compare(princ1, princ2) krb5_const_principal princ1; krb5_const_principal princ2; { - register krb5_data * const *p1, * const *p2; + register int i, nelem; - for (p1 = princ1, p2 = princ2; *p1 && *p2; p1++, p2++) { - if ((*p1)->length != (*p2)->length) - return FALSE; - if (memcmp((*p1)->data, (*p2)->data, (*p1)->length)) - + nelem = krb5_princ_size(princ1); + if (nelem != krb5_princ_size(princ2)) + return FALSE; + + if (krb5_princ_realm(princ1)->length != krb5_princ_realm(princ2)->length || + memcmp (krb5_princ_realm(princ1)->data, krb5_princ_realm(princ2)->data, + krb5_princ_realm(princ2)->length)) + return FALSE; + + for (i = 0; i < nelem; i++) { + register const krb5_data *p1 = krb5_princ_component(princ1, i); + register const krb5_data *p2 = krb5_princ_component(princ2, i); + if (p1->length != p2->length || + memcmp(p1->data, p2->data, p1->length)) return FALSE; } - if (*p1 || *p2) /* didn't both run out of components - at once */ - return FALSE; return TRUE; } -- cgit