mini-keyctl: fix key id parsing by "0x" prefix

Otherwise, ParseInt treats the input as decimal and fails.

Test: add key works
Bug: None
Change-Id: I144ab0bba519c7630e702562bfb54118a389908e
This commit is contained in:
Victor Hsieh 2019-04-15 15:19:08 -07:00
parent b142458ab3
commit 17aaee2f05

View file

@ -67,7 +67,7 @@ static key_serial_t GetKeyringIdOrDie(const std::string& keyring_desc) {
if (tokens.size() < 9) {
continue;
}
std::string key_id = tokens[0];
std::string key_id = "0x" + tokens[0];
std::string key_type = tokens[7];
// The key description may contain space.
std::string key_desc_prefix = tokens[8];
@ -77,7 +77,7 @@ static key_serial_t GetKeyringIdOrDie(const std::string& keyring_desc) {
continue;
}
if (!android::base::ParseInt(key_id.c_str(), &keyring_id)) {
error(1, 0, "Unexpected key format in /proc/keys");
error(1, 0, "Unexpected key format in /proc/keys: %s", key_id.c_str());
return -1;
}
return keyring_id;