poppler/Form.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 4aca8d65fd073667433e4426c5c08d7e9ea68d64 Author: Nelson Benítez León <nbenit...@gmail.com> Date: Tue Dec 14 01:14:19 2021 +0000
poppler/Form.cc: fix crash when calling Form::reset() caused by calling compare() with a negative 'pos' argument. Fixes issue https://gitlab.gnome.org/GNOME/evince/-/issues/1694 diff --git a/poppler/Form.cc b/poppler/Form.cc index cb6f62f8..209b6cfb 100644 --- a/poppler/Form.cc +++ b/poppler/Form.cc @@ -2554,7 +2554,7 @@ void Form::reset(const std::vector<std::string> &fields, bool excludeFields) for (const std::string &field : fields) { Ref fieldRef; - if (field.compare(field.size() - 2, 2, " R") == 0 && sscanf(field.c_str(), "%d %d R", &fieldRef.num, &fieldRef.gen) == 2) { + if (field.size() > 1 && field.compare(field.size() - 2, 2, " R") == 0 && sscanf(field.c_str(), "%d %d R", &fieldRef.num, &fieldRef.gen) == 2) { foundField = findFieldByRef(fieldRef); } else { foundField = findFieldByFullyQualifiedName(field);