(heim_bit_string_cmp): try handle corner cases better

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15743 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2005-07-25 21:03:26 +00:00
parent 988d292b08
commit 68d93ba416

View File

@@ -60,10 +60,12 @@ heim_bit_string_cmp(const heim_bit_string *p, const heim_bit_string *q)
i = memcmp(p->data, q->data, p->length / 8); i = memcmp(p->data, q->data, p->length / 8);
if (i) if (i)
return i; return i;
i = p->length / 8; if ((p->length % 8) == 0)
return 0;
i = (p->length / 8);
r1 = ((unsigned char *)p->data)[i]; r1 = ((unsigned char *)p->data)[i];
r2 = ((unsigned char *)q->data)[i]; r2 = ((unsigned char *)q->data)[i];
i = 8 - p->length % 8; i = 8 - (p->length % 8);
r1 = r1 >> i; r1 = r1 >> i;
r2 = r2 >> i; r2 = r2 >> i;
return r1 - r2; return r1 - r2;