Do not call pop_back when app has no uses-sdk
Calling pop_back on an empty container results in undefined behavior. aapt2 dump badging seg faults when used on an APK with no uses-sdk. Bug: 188461703 Test: aapt2 dump badging HelloAppTest.apk Change-Id: I8d8308a06d542f003ae399629bdbfb5b845674fc
This commit is contained in:
@@ -1978,12 +1978,13 @@ bool ManifestExtractor::Dump(text::Printer* printer, IDiagnostics* diag) {
|
||||
filtered_uses_sdk_tags.emplace_back(uses_sdk);
|
||||
}
|
||||
}
|
||||
filtered_uses_sdk_tags.pop_back();
|
||||
|
||||
root->Filter([&](const ManifestExtractor::Element* e) {
|
||||
return std::find(filtered_uses_sdk_tags.begin(), filtered_uses_sdk_tags.end(), e) !=
|
||||
filtered_uses_sdk_tags.end();
|
||||
});
|
||||
if (filtered_uses_sdk_tags.size() >= 2U) {
|
||||
filtered_uses_sdk_tags.pop_back();
|
||||
root->Filter([&](const ManifestExtractor::Element* e) {
|
||||
return std::find(filtered_uses_sdk_tags.begin(), filtered_uses_sdk_tags.end(), e) !=
|
||||
filtered_uses_sdk_tags.end();
|
||||
});
|
||||
}
|
||||
|
||||
// Print the elements in order seen
|
||||
Print(root.get(), printer);
|
||||
|
||||
Reference in New Issue
Block a user