PDFDocument sized every row of a /Type/XRef stream as one predictor byte plus the /W fields and read the fields from offset one, and the no-prediction arm of the filter never copied the row it had read. /Predictor defaults to 1, so a stream written without /DecodeParms decoded as nothing but free entries. It gave up entirely when /Filter was absent, which is as legal. An indirect /Length is resolved through those offsets. With none of them the tokenizer cannot skip a stream body, so it reads the compressed bytes as tokens and Read() fails on the file. Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com> Change-Id: I4929e879e02ba91dce8280421f129f91dba9074d Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13205 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit 3adab88af78016314f210f2be66668190b1f3493) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211444 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>