summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-09-11 16:13:33 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-09-11 16:13:33 +0000
commit647d5ee3ba6bd6812247003c12f38c28d979564d (patch)
treec607b56d3ffcdad3bb50f4cac16a009c965f650e /src/lib
parent09c052e22f931687d3ebc3cd2fc25f900dd70c52 (diff)
downloadkrb5-647d5ee3ba6bd6812247003c12f38c28d979564d.tar.gz
krb5-647d5ee3ba6bd6812247003c12f38c28d979564d.tar.xz
krb5-647d5ee3ba6bd6812247003c12f38c28d979564d.zip
fix bcmp error
add register to args git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1119 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/faddr_ordr.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/lib/krb5/krb/faddr_ordr.c b/src/lib/krb5/krb/faddr_ordr.c
index 323791bfb..00843b01d 100644
--- a/src/lib/krb5/krb/faddr_ordr.c
+++ b/src/lib/krb5/krb/faddr_ordr.c
@@ -29,10 +29,13 @@ static char rcsid_faddr_ordr_c[] =
*/
int
krb5_fulladdr_order(addr1, addr2)
-const krb5_fulladdr *addr1;
-const krb5_fulladdr *addr2;
+register const krb5_fulladdr *addr1;
+register const krb5_fulladdr *addr2;
{
int dir;
+ const int minlen = min(addr1->address->length, addr2->address->length);
+ register int i;
+
dir = addr1->address->addrtype - addr2->address->addrtype;
if (dir)
return(dir);
@@ -41,12 +44,14 @@ const krb5_fulladdr *addr2;
if (dir)
return(dir);
- dir = bcmp((char *)addr1->address->contents,
- (char *)addr2->address->contents,
- min(addr1->address->length, addr2->address->length));
- if (dir)
- return(dir);
-
+ for (i = 0; i < minlen; i++) {
+ if ((unsigned char) addr1->address->contents[i] <
+ (unsigned char) addr2->address->contents[i])
+ return -1;
+ else if ((unsigned char) addr1->address->contents[i] >
+ (unsigned char) addr2->address->contents[i])
+ return 1;
+ }
if (addr1->port > addr2->port)
return(1);
else if (addr1->port < addr2->port)