https://bugs.documentfoundation.org/show_bug.cgi?id=63054

--- Comment #4 from Mike Kaganski <[email protected]> ---
The problem is in pdf_string_parser::operator(): pdfparse.cxx line 119
(http://opengrok.libreoffice.org/xref/core/sdext/source/pdfimport/pdfparse/pdfparse.cxx#119)
This line is used to skip escaped braces, like

(\))

It pre-increments the scanner to swallow the backslash, and after that, the
scanner is incremented again (normally) on line 124.

The operator++ for boost spirit classic scanner does two things:
1. Advances the scanner;
2. Skips whitespace.

So, if the parsed string has this form:

(\ )

i.e. <left parenthesis><backslash><space><right parenthesis>
then the first increment (line 119, condition = backslash) skips TWO characters
at once, and the next increment skips the normal closing parenthesis. Thus, the
parsing continues. This gives "incorrect" PDF structure, i.e. the check in
pdfparse.cxx line 575 gives false, thus the whole PDF load fails up to
sfxbasemodel.cxx line 1929
(http://opengrok.libreoffice.org/xref/core/sfx2/source/doc/sfxbasemodel.cxx#1929),
where the error is displayed.

I'll try to prepare a patch for that case.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to