Treat all tags as unsigned when comparing them
All tags are presumed to be unsigned, but some of them have signed representations that are negative. This caused problems in AuthorizationSet.Deduplicate, where TAG_APPLICATION_DATA (signed rep of -1879047492) was being sorted before TAG_INVALID (0), which was presumed to always be first in the list. BUG: 30701680 Change-Id: I67047cee21fd7617248022a4674779fe80d5ddfd
This commit is contained in:
parent
5982d8f27f
commit
28a872eb79
1 changed files with 1 additions and 1 deletions
|
@ -518,7 +518,7 @@ inline keymaster_key_param_t keymaster_param_date(keymaster_tag_t tag, uint64_t
|
|||
|
||||
#define KEYMASTER_SIMPLE_COMPARE(a, b) (a < b) ? -1 : ((a > b) ? 1 : 0)
|
||||
inline int keymaster_param_compare(const keymaster_key_param_t* a, const keymaster_key_param_t* b) {
|
||||
int retval = KEYMASTER_SIMPLE_COMPARE(a->tag, b->tag);
|
||||
int retval = KEYMASTER_SIMPLE_COMPARE((uint32_t)a->tag, (uint32_t)b->tag);
|
||||
if (retval != 0)
|
||||
return retval;
|
||||
|
||||
|
|
Loading…
Reference in a new issue