aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/princ_comp.c
diff options
context:
space:
mode:
authorJohn Carr <jfc@mit.edu>1992-08-21 02:57:41 +0000
committerJohn Carr <jfc@mit.edu>1992-08-21 02:57:41 +0000
commitb3fe263e5dc8b362aec2ee8c35d5528a04cb8fe2 (patch)
treeee33b4fdc043f57287d4595591d5ebd8b72063f7 /src/lib/krb5/krb/princ_comp.c
parent3fecd7a277f3ab86697bae4c1e232a6ad5806908 (diff)
downloadkrb5-b3fe263e5dc8b362aec2ee8c35d5528a04cb8fe2.zip
krb5-b3fe263e5dc8b362aec2ee8c35d5528a04cb8fe2.tar.gz
krb5-b3fe263e5dc8b362aec2ee8c35d5528a04cb8fe2.tar.bz2
Principal type changes
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2347 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/princ_comp.c')
-rw-r--r--src/lib/krb5/krb/princ_comp.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/lib/krb5/krb/princ_comp.c b/src/lib/krb5/krb/princ_comp.c
index 4fa3f91..4e8c9f5 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 <krb5/krb5.h>
#include <krb5/ext-proto.h>
-#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;
}