Add idmap completely parsed assertion
If LoadedIdmap::Load finishes parsing the idmap file but has not
parsed the entire file, then it parsed the file incorrectly. Log
an error if the idmap fails to parse.
Bug: 174676094
Test: libandroidfw_tests
Change-Id: I8ae7ed525715ab907d5813975c1ef5d1260bbd33
diff --git a/libs/androidfw/Idmap.cpp b/libs/androidfw/Idmap.cpp
index 73e040c..adb383f95 100644
--- a/libs/androidfw/Idmap.cpp
+++ b/libs/androidfw/Idmap.cpp
@@ -326,6 +326,11 @@
}
}
+ if (data_size != 0) {
+ LOG(ERROR) << "idmap parsed with " << data_size << "bytes remaining";
+ return {};
+ }
+
// Can't use make_unique because LoadedIdmap constructor is private.
return std::unique_ptr<LoadedIdmap>(
new LoadedIdmap(idmap_path.to_string(), header, data_header, target_entries,