Require quotes when searching for blkid keys.

In combination with a blkid change, this prevents the parsing logic
from getting confused by key names appearing inside values.  (The
blkid change suppresses any quotes that appear inside values.)

Bug: 80436257
Test: manual
Change-Id: I9480ef6eb78254b812c671950875d0b8918a27c6
This commit is contained in:
Jeff Sharkey 2018-06-01 11:31:39 -06:00 committed by Jeff Sharkey
parent eddf9bd63c
commit ee5c7318d7

View file

@ -189,17 +189,17 @@ static status_t readMetadata(const std::string& path, std::string& fsType,
for (auto line : output) {
// Extract values from blkid output, if defined
const char* cline = line.c_str();
char* start = strstr(cline, "TYPE=");
char* start = strstr(cline, "TYPE=\"");
if (start != nullptr && sscanf(start + 5, "\"%127[^\"]\"", value) == 1) {
fsType = value;
}
start = strstr(cline, "UUID=");
start = strstr(cline, "UUID=\"");
if (start != nullptr && sscanf(start + 5, "\"%127[^\"]\"", value) == 1) {
fsUuid = value;
}
start = strstr(cline, "LABEL=");
start = strstr(cline, "LABEL=\"");
if (start != nullptr && sscanf(start + 6, "\"%127[^\"]\"", value) == 1) {
fsLabel = value;
}