diff options
| author | 2020-11-13 00:05:40 +0000 | |
|---|---|---|
| committer | 2020-11-13 00:05:40 +0000 | |
| commit | c234812e275368f47d798112e1de49a8aad99753 (patch) | |
| tree | 2c029a88ba773fa77936dc89ccd4f6328e2ece07 /tools/aapt2/ResourceUtils.cpp | |
| parent | 8f8eaec80190bc4a35851b9efbef412dd63efb70 (diff) | |
| parent | 5602dc9374934a42964e0f57faa3c0aad43003e1 (diff) | |
Merge changes from topic "libaw-hardening"
* changes:
Do not cache bag parent stack until requested
Cache resolved theme values
libandroidfw hardening for IncFs
Diffstat (limited to 'tools/aapt2/ResourceUtils.cpp')
| -rw-r--r-- | tools/aapt2/ResourceUtils.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp index 7dfc983b54ba..5b43df6f0935 100644 --- a/tools/aapt2/ResourceUtils.cpp +++ b/tools/aapt2/ResourceUtils.cpp @@ -751,10 +751,12 @@ std::unique_ptr<Item> ParseBinaryResValue(const ResourceType& type, const Config switch (res_value.dataType) { case android::Res_value::TYPE_STRING: { const std::string str = util::GetString(src_pool, data); - const android::ResStringPool_span* spans = src_pool.styleAt(data); + auto spans_result = src_pool.styleAt(data); // Check if the string has a valid style associated with it. - if (spans != nullptr && spans->name.index != android::ResStringPool_span::END) { + if (spans_result.has_value() && + (*spans_result)->name.index != android::ResStringPool_span::END) { + const android::ResStringPool_span* spans = spans_result->unsafe_ptr(); StyleString style_str = {str}; while (spans->name.index != android::ResStringPool_span::END) { style_str.spans.push_back(Span{util::GetString(src_pool, spans->name.index), |