mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-30 12:24:25 +02:00
Merge pull request #3133 from overleaf/hb-fix-bibtex-error-crash
Stop bib log parser after 500 iterations per parser GitOrigin-RevId: 415624c20154b4fd4054f166179cd455a7cc2d4d
This commit is contained in:
@@ -615,7 +615,7 @@ App.controller('PdfController', function(
|
||||
function processBiber(log) {
|
||||
const { errors, warnings } = BibLogParser.parse(log, {})
|
||||
const all = [].concat(errors, warnings)
|
||||
accumulateResults({ type: 'BibTeX', all, errors, warnings })
|
||||
accumulateResults({ type: 'BibTeX:', all, errors, warnings })
|
||||
}
|
||||
|
||||
// output the results
|
||||
|
||||
@@ -23,10 +23,19 @@ define(function() {
|
||||
iterationCount = 0;
|
||||
while (match = re.exec(text)) {
|
||||
iterationCount += 1;
|
||||
if (iterationCount >= 10000) {
|
||||
return result;
|
||||
}
|
||||
newEntry = process(match);
|
||||
|
||||
// Too many log entries can cause browser crashes
|
||||
// Construct a too many files error from the last match
|
||||
const maxErrors = 100
|
||||
if (iterationCount >= maxErrors) {
|
||||
const level = newEntry.level + "s"
|
||||
newEntry.message = `Over ${maxErrors} ${level} returned. Download raw logs to see full list`;
|
||||
newEntry.line = undefined;
|
||||
result.unshift(newEntry)
|
||||
return [result, ""];
|
||||
}
|
||||
|
||||
result.push(newEntry);
|
||||
text = (match.input.slice(0, match.index)) + (match.input.slice(match.index + match[0].length + 1, match.input.length));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user