asn1: Fix OID resolution bug
This commit is contained in:
@@ -181,7 +181,7 @@ sort_sym_oids(int (*cmp)(const void *, const void *))
|
|||||||
int
|
int
|
||||||
der_find_heim_oid_by_name(const char *str, const heim_oid **oid)
|
der_find_heim_oid_by_name(const char *str, const heim_oid **oid)
|
||||||
{
|
{
|
||||||
size_t right = num_sym_oids;
|
size_t right = num_sym_oids - 1;
|
||||||
size_t left = 0;
|
size_t left = 0;
|
||||||
|
|
||||||
*oid = NULL;
|
*oid = NULL;
|
||||||
@@ -198,14 +198,12 @@ der_find_heim_oid_by_name(const char *str, const heim_oid **oid)
|
|||||||
*oid = sym_oids_sorted_by_name[mid].oid;
|
*oid = sym_oids_sorted_by_name[mid].oid;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (cmp < 0 && right)
|
if (cmp < 0 && mid > 0) /* avoid underflow */
|
||||||
right = mid - 1;
|
right = mid - 1;
|
||||||
else if (cmp < 0)
|
else if (cmp < 0)
|
||||||
return -1;
|
return -1;
|
||||||
else if (mid < num_sym_oids - 1)
|
|
||||||
left = mid + 1;
|
|
||||||
else
|
else
|
||||||
return -1;
|
left = mid + 1;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user