Bug 1676688 - Part 2: Add limitation to ParserAtomsTable entry. r=tcampbell

Differential Revision: https://phabricator.services.mozilla.com/D96811
This commit is contained in:
Tooru Fujisawa 2020-11-12 20:26:29 +00:00
Родитель aaa1b25ade
Коммит 9b9b55b106
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -321,6 +321,10 @@ JS::Result<const ParserAtom*, OOM> ParserAtomsTable::addEntry(
JSContext* cx, EntryMap::AddPtr& addPtr, ParserAtomEntry* entry) {
MOZ_ASSERT(!addPtr);
ParserAtomIndex index = ParserAtomIndex(entries_.length());
if (size_t(index) >= TaggedParserAtomIndex::IndexLimit) {
ReportAllocationOverflow(cx);
return mozilla::Err(PARSER_ATOMS_OOM);
}
if (!entries_.append(entry)) {
return RaiseParserAtomsOOMError(cx);
}
@ -382,6 +386,10 @@ ParserAtomVectorBuilder::ParserAtomVectorBuilder(JSRuntime* rt,
entries_(entries) {}
bool ParserAtomVectorBuilder::reserve(JSContext* cx, size_t count) {
if (count >= TaggedParserAtomIndex::IndexLimit) {
ReportAllocationOverflow(cx);
return false;
}
if (!entries_.reserve(count)) {
ReportOutOfMemory(cx);
return false;