poppler issueshttps://gitlab.freedesktop.org/poppler/poppler/-/issues2019-04-17T20:53:27Zhttps://gitlab.freedesktop.org/poppler/poppler/-/issues/757pdftocairo -pdf produces a broken pdf out of this pdf2019-04-17T20:53:27ZAlex Kpdftocairo -pdf produces a broken pdf out of this pdfHow to reproduce:
Convert the file original.pdf into another PDF with
`pdftocairo -pdf original.pdf orig-cairo.pdf`
Resulting file will be missing all the text, and pdftopdf will choke on it thus making it impossible to print
```
$ ...How to reproduce:
Convert the file original.pdf into another PDF with
`pdftocairo -pdf original.pdf orig-cairo.pdf`
Resulting file will be missing all the text, and pdftopdf will choke on it thus making it impossible to print
```
$ cat /tmp/orig-cairo.pdf | /usr/lib/cups/filter/pdftopdf 1 1 1 1 '' >out.pdf
DEBUG: pdftopdf: No PPD file specified, could not determine whether to log pages or not, so turned off page logging.
WARNING: temp file: file is damaged
WARNING: temp file (object 7 0, offset 15236): expected n n obj
WARNING: temp file: Attempting to reconstruct cross-reference table
WARNING: temp file: object 7 0 not found in file after regenerating cross reference table
```
Cairo 1.16.0, poppler 0.61.1, qpdf 8.0.2.
[original.pdf](/uploads/96118a2bcd2f9fe0984ce899cad089ea/original.pdf).
[orig-cairo.pdf](/uploads/8a7a22ace6b97a074e70b11a35cab537/orig-cairo.pdf)https://gitlab.freedesktop.org/poppler/poppler/-/issues/756Type 4 shadings do not render correctly2019-04-23T12:52:51ZDavid PurtonType 4 shadings do not render correctlyType 4 shadings do not render correctly with poppler based viewers (e.g., Evince, Zathura, Gimp).
This PDF was produced with LaTeX and PGF.
[type4shading.pdf](/uploads/0123302380398296fc366519c1ee012e/type4shading.pdf)
Poppler renders...Type 4 shadings do not render correctly with poppler based viewers (e.g., Evince, Zathura, Gimp).
This PDF was produced with LaTeX and PGF.
[type4shading.pdf](/uploads/0123302380398296fc366519c1ee012e/type4shading.pdf)
Poppler renders this PDF as:
![type4shading poppler](/uploads/90332d7d93017b90adee552b9a1e42e5/type4shading.png)
Adobe Reader and GhostScript render it as:
![type4shading reference](/uploads/91be0dd75b1aacde64959a63fe04fb74/type4shading.png)https://gitlab.freedesktop.org/poppler/poppler/-/issues/753incorrect kerning in some XFA form fields2020-10-24T15:19:05ZNathaniel M. Beaverincorrect kerning in some XFA form fieldsI entered some text into [a PDF containing XFA forms](/uploads/bc4560d890cf532a9acbb058ccae9eed/ss-5.pdf). I can enter the text without issue, but some of the letters are wrongly positioned, i.e. the kerning is wrong, both in xpdf and on...I entered some text into [a PDF containing XFA forms](/uploads/bc4560d890cf532a9acbb058ccae9eed/ss-5.pdf). I can enter the text without issue, but some of the letters are wrongly positioned, i.e. the kerning is wrong, both in xpdf and on the printed page. For example, the letter "i" overlaps with the letter "m" in "Smith":
![xpdf-screenshot](/uploads/fa7bc6b73a8cbb7562ca9013bc2bfcaf/xpdf-screenshot.png)
I've observed this bug to be present in Evince, xpdf, and Okular, but not mupdf or pdf.js. I've also confirmed it to be present in the output of `pdftoppm` and `pdfcairo`. An [Arch Linux user has reported reproducing the issue](https://askubuntu.com/questions/1031235/wrong-letter-positioning-and-font-in-pdf-form#comment1867868_1031235), and both [Ubuntu](https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1824260) and [GNOME](https://gitlab.gnome.org/GNOME/evince/issues/1127) have confirmed the bug.
My questions:
- Is this the correct place to report this bug?
- Is this a duplicate of https://gitlab.freedesktop.org/poppler/poppler/issues/694 ?
- Should I include any further debugging information?
libpoppler version:
$ file /usr/lib/x86_64-linux-gnu/libpoppler.so.73.0.0
/usr/lib/x86_64-linux-gnu/libpoppler.so.73.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=29185bb684d73e7289db19f77b3b4f3fbb4ca0f9, stripped
$ apt-cache policy libpoppler73
libpoppler73:
Installed: 0.62.0-2ubuntu2.8
Candidate: 0.62.0-2ubuntu2.8
Version table:
*** 0.62.0-2ubuntu2.8 500
500 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
100 /var/lib/dpkg/status
0.62.0-2ubuntu2 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
xpdf version:
$ xpdf -v
xpdf version 3.04
Copyright 1996-2014 Glyph & Cog, LLC
evince version:
$ evince --version
GNOME Document Viewer 3.28.4
Linux distribution: Ubuntu 18.04.
PDF information:
$ pdfinfo ss-5.pdf
Title: Application for Social Security Card
Subject: Use this form to apply for a new or replacemet SSN card.
Keywords: Social Security Card, Application, Card, SS-5, 5, SSN
Author: Social Security Administration
Creator: Adobe LiveCycle Designer ES 9.0
Producer: Adobe LiveCycle Designer ES 9.0
CreationDate: Mon Nov 16 07:36:43 2015 CST
ModDate: Mon Nov 23 08:01:40 2015 CST
Tagged: yes
UserProperties: no
Suspects: no
Form: XFA
JavaScript: yes
Pages: 5
Encrypted: yes (print:yes copy:no change:no addNotes:yes algorithm:AES)
Page size: 612 x 792 pts (letter)
Page rot: 0
File size: 141815 bytes
Optimized: no
PDF version: 1.7
$ pdffonts -subst ss-5.pdf
name object ID substitute font substitute font file
------------------------------------ --------- ------------------------------------ ------------------------------------
ArialMT 826 0 Arial /usr/share/fonts/truetype/msttcorefonts/Arial.ttf
Arial-BoldMT 828 0 Arial Negreta /usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf
CourierStd 145 0 DejaVu Sans /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
Helvetica 197 0 Bitstream Vera Sans /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf
MyriadPro-Regular 198 0 DejaVu Sans /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
ZapfDingbats 199 0 DejaVu Sans /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
Evince bug:
https://gitlab.gnome.org/GNOME/evince/issues/1127
Ubuntu bug:
https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1824260
AskUbuntu question:
https://askubuntu.com/questions/1031235/wrong-letter-positioning-and-font-in-pdf-form
Potentially related bugs:
https://gitlab.freedesktop.org/poppler/poppler/issues/694
Attachments:
[ss-5.pdf](/uploads/bc4560d890cf532a9acbb058ccae9eed/ss-5.pdf)
[xpdf-screenshot](/uploads/fa7bc6b73a8cbb7562ca9013bc2bfcaf/xpdf-screenshot.png)https://gitlab.freedesktop.org/poppler/poppler/-/issues/747pdftocairo crashes on this PDF file with _cairo_ps_surface_operation_supporte...2019-03-29T22:12:26ZAlex Kpdftocairo crashes on this PDF file with _cairo_ps_surface_operation_supported failedpoppler utils 0.61.1, cairo 1.16.0 on Debian Testing.
How to reproduce:
pdftocairo -ps -level3 [d96882-edited.pdf](/uploads/b3be72f3b77feeca3e2e5866581ab0ef/d96882-edited.pdf) out.ps
```
pdftocairo: ../../../../src/cairo-ps-surface.c...poppler utils 0.61.1, cairo 1.16.0 on Debian Testing.
How to reproduce:
pdftocairo -ps -level3 [d96882-edited.pdf](/uploads/b3be72f3b77feeca3e2e5866581ab0ef/d96882-edited.pdf) out.ps
```
pdftocairo: ../../../../src/cairo-ps-surface.c:4986: _cairo_ps_surface_mask: Assertion `_cairo_ps_surface_operation_supported (surface, op, source, mask, &extents.bounded)' failed.
Program received signal SIGABRT, Aborted.
```
Gdb stack shows this
```
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff65013fa in __GI_abort () at abort.c:89
#2 0x00007ffff64f8e37 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x7ffff7ba9870 "_cairo_ps_surface_operation_supported (surface, op, source, mask, &extents.bounded)", file=file@entry=0x7ffff7ba7a58 "../../../../src/cairo-ps-surface.c", line=line@entry=4986, function=function@entry=0x7ffff7ba99f0 <__PRETTY_FUNCTION__.14368> "_cairo_ps_surface_mask") at assert.c:92
#3 0x00007ffff64f8ee2 in __GI___assert_fail (assertion=assertion@entry=0x7ffff7ba9870 "_cairo_ps_surface_operation_supported (surface, op, source, mask, &extents.bounded)", file=file@entry=0x7ffff7ba7a58 "../../../../src/cairo-ps-surface.c", line=line@entry=4986, function=function@entry=0x7ffff7ba99f0 <__PRETTY_FUNCTION__.14368> "_cairo_ps_surface_mask") at assert.c:101
#4 0x00007ffff7b820b1 in _cairo_ps_surface_mask (abstract_surface=0x5555557cea50, op=CAIRO_OPERATOR_OVER, source=0x555555830df8, mask=0x555555830f10, clip=<optimized out>) at ../../../../src/cairo-ps-surface.c:4986
#5 0x00007ffff7b31747 in _cairo_surface_mask (surface=0x5555557cea50, op=CAIRO_OPERATOR_OVER, source=0x555555830df8, mask=0x555555830f10, clip=0x5555558a6a90) at ../../../../src/cairo-surface.c:2247
#6 0x00007ffff7b2df40 in _cairo_surface_wrapper_mask (wrapper=wrapper@entry=0x7fffffffd200, op=CAIRO_OPERATOR_OVER, source=source@entry=0x555555830df8, mask=mask@entry=0x555555830f10, clip=<optimized out>) at ../../../../src/cairo-surface-wrapper.c:200
#7 0x00007ffff7b1afcb in _cairo_recording_surface_replay_internal (surface=surface@entry=0x5555558472b0, surface_extents=surface_extents@entry=0x0, surface_transform=surface_transform@entry=0x0, target=target@entry=0x5555557cea50, target_clip=target_clip@entry=0x0, surface_is_unbounded=surface_is_unbounded@entry=0, type=CAIRO_RECORDING_REPLAY, region=<optimized out>) at ../../../../src/cairo-recording-surface.c:1896
#8 0x00007ffff7b1c287 in _cairo_recording_surface_replay_region (surface=surface@entry=0x5555558472b0, surface_extents=surface_extents@entry=0x0, target=target@entry=0x5555557cea50, region=region@entry=CAIRO_RECORDING_REGION_NATIVE) at ../../../../src/cairo-recording-surface.c:2210
#9 0x00007ffff7b7f430 in _cairo_ps_surface_emit_recording_surface (surface=surface@entry=0x5555557cea50, recording_surface=0x5555558472b0, recording_extents=0x7fffffffd510, subsurface=subsurface@entry=0) at ../../../../src/cairo-ps-surface.c:3398
#10 0x00007ffff7b800e3 in _cairo_ps_surface_emit_surface (surface=0x5555557cea50, mode=CAIRO_EMIT_SURFACE_ANALYZE, params=0x7fffffffd580) at ../../../../src/cairo-ps-surface.c:3684
#11 0x00007ffff7b8061e in _cairo_ps_surface_emit_surface_pattern (surface=0x5555557cea50, pattern=0x5555557f2a48, extents=<optimized out>, op=CAIRO_OPERATOR_OVER) at ../../../../src/cairo-ps-surface.c:4117
#12 0x00007ffff7b81ed3 in _cairo_ps_surface_fill (abstract_surface=0x5555557cea50, op=CAIRO_OPERATOR_OVER, source=0x5555557f2a48, path=0x5555557f2b60, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=<optimized out>, antialias=<optimized out>, clip=0x5555557c20a0) at ../../../../src/cairo-ps-surface.c:5163
#13 0x00007ffff7b3196a in _cairo_surface_fill (surface=0x5555557cea50, op=CAIRO_OPERATOR_OVER, source=0x5555557f2a48, path=0x5555557f2b60, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x5555557c20a0) at ../../../../src/cairo-surface.c:2422
#14 0x00007ffff7b2e6f0 in _cairo_surface_wrapper_fill (wrapper=wrapper@entry=0x7fffffffde50, op=CAIRO_OPERATOR_OVER, source=source@entry=0x5555557f2a48, path=path@entry=0x5555557f2b60, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x5555557f0c30) at ../../../../src/cairo-surface-wrapper.c:384
#15 0x00007ffff7b1b2e6 in _cairo_recording_surface_replay_internal (surface=<optimized out>, surface_extents=surface_extents@entry=0x0, surface_transform=surface_transform@entry=0x0, target=<optimized out>, target_clip=target_clip@entry=0x0, surface_is_unbounded=surface_is_unbounded@entry=0, type=CAIRO_RECORDING_REPLAY, region=<optimized out>) at ../../../../src/cairo-recording-surface.c:1980
#16 0x00007ffff7b1c287 in _cairo_recording_surface_replay_region (surface=<optimized out>, surface_extents=surface_extents@entry=0x0, target=<optimized out>, region=region@entry=CAIRO_RECORDING_REGION_NATIVE) at ../../../../src/cairo-recording-surface.c:2210
#17 0x00007ffff7afce42 in _paint_page (surface=surface@entry=0x5555557d0bf0) at ../../../../src/cairo-paginated-surface.c:469
#18 0x00007ffff7afd313 in _cairo_paginated_surface_show_page (abstract_surface=0x5555557d0bf0) at ../../../../src/cairo-paginated-surface.c:583
#19 0x00007ffff7b31ccb in INT_cairo_surface_show_page (surface=0x5555557d0bf0) at ../../../../src/cairo-surface.c:2504
```https://gitlab.freedesktop.org/poppler/poppler/-/issues/746pdftotext output text position error2019-03-30T10:48:49Zidlepdftotext output text position errorenv:windows 10 1809
pdftotext version 0.75.0
in the pdf file text order such as `AB` use `pdftotext -enc UTF-8 -nopgbrk -layout lwarp-test_html.pdf lwarp-test_html.html` output `BA`
![20190328125806](/uploads/2b3e859dcec724509b8929e...env:windows 10 1809
pdftotext version 0.75.0
in the pdf file text order such as `AB` use `pdftotext -enc UTF-8 -nopgbrk -layout lwarp-test_html.pdf lwarp-test_html.html` output `BA`
![20190328125806](/uploads/2b3e859dcec724509b8929e82f7a7c1f/20190328125806.png)
![20190328130118](/uploads/a7689e7de10fcedf95a66b0d69673a8f/20190328130118.png)
the MWE
[lwarp-test_html.pdf](/uploads/74c2fac018a1a5acd375581ee1bbb3c0/lwarp-test_html.pdf)https://gitlab.freedesktop.org/poppler/poppler/-/issues/745pdftohtml: Cannot parse text from OCRed document (tesseract 4.0.0)2019-03-29T15:48:27ZVassilis Lemonidispdftohtml: Cannot parse text from OCRed document (tesseract 4.0.0)Using poppler-utils 0.75.0, my OS is Ubuntu 18.04
Images that were converted by tesseract to searchable pdfs cannot be transformed to html, only the images are rendered and the text is ignored. Have attached example which was produced u...Using poppler-utils 0.75.0, my OS is Ubuntu 18.04
Images that were converted by tesseract to searchable pdfs cannot be transformed to html, only the images are rendered and the text is ignored. Have attached example which was produced using http://www.orimi.com/pdf-test.pdf and the following order of commands:
```
convert pdf-test test.jpg
tesseract test.jpg test pdf
pdftohtml test.pdf
```
![test](/uploads/0ce748257e30c60482a221015e333ec2/test.jpg)
[test.pdf](/uploads/37764476ff8ad221b87f7c16452c8eea/test.pdf)
[pdftohtml_output.zip](/uploads/c2e26e93ff9de5943e8b06f099809115/pdftohtml_output.zip)https://gitlab.freedesktop.org/poppler/poppler/-/issues/744Feature request: Make search being able to ignore hyphen at the end of the line2022-06-30T15:37:39ZUniverseIsProprietary2Feature request: Make search being able to ignore hyphen at the end of the lineIn a large documents there are many words with a hyphen at the end of the line. It would be good if it would be possible to include words with hyphen at the end of the line in a search results.
For example, in [this](https://www.gnu.org...In a large documents there are many words with a hyphen at the end of the line. It would be good if it would be possible to include words with hyphen at the end of the line in a search results.
For example, in [this](https://www.gnu.org/licenses/quick-guide-gplv3.pdf) PDF file we have sentence like:
> We update the GPL to protect its copyleft from being undermined by legal or technological devel(-)opments.
I would like to do a search for the word "developments" and that the search would include the word which contains hyphen at the end of the line (no need to display hyphen itself in search results).
Thank you for taking your time to read my msg.https://gitlab.freedesktop.org/poppler/poppler/-/issues/740Map WPTypographicSymbols characters to Unicode equivalents2019-03-14T23:19:17ZWill GlynnMap WPTypographicSymbols characters to Unicode equivalents(Downstream issue: [freelawproject/courtlistener#937](https://github.com/freelawproject/courtlistener/issues/937))
PDFs encountered in the wild sometimes use a font called "WP Typographic Symbols", a font shipped with WordPerfect which ...(Downstream issue: [freelawproject/courtlistener#937](https://github.com/freelawproject/courtlistener/issues/937))
PDFs encountered in the wild sometimes use a font called "WP Typographic Symbols", a font shipped with WordPerfect which allowed various typographic symbols to be rendered at a time when 8-bit character sets ruled the world. This font asks the user to enter `A` when they want to display `“` (which would now be represented as U+201C left double quotation mark), `@` when they want to display `”`, `=` when they want to display `’`, etc.
This causes problems with legal documents, as the legal field has favored WordPerfect for many years and produced many PDFs using this font. For example, this section of [an arbitrary court decision](http://www.illinoiscourts.gov/Opinions/SupremeCourt/2006/June/99977.pdf):
![PDF](/uploads/7938a1882433c84523697096291a810e/Screen_Shot_2019-03-14_at_9.00.59_AM.png)
`pdftotext` correctly sees that the document contains `A`, but doesn't know anything about this WordPerfect font, so it doesn't know that their intent is to communicate `“`. This section converts into:
```
The court Areject[s] the dissent=s attempt@ (slip op. at 11) to
distinguish Estelle. The court=s rejection is made without any real
discussion of the salient points of the United States Supreme Court=s
analysis as it fails to discuss the importance the invited-error doctrine
had on the United State Supreme Court=s analysis in refusing to
excuse the defendant=s procedural default.
```
`pdftotext` should instead output what the author means when they write characters using WP Typographic Symbols:
```
The court “reject[s] the dissent’s attempt” (slip op. at 11) to
distinguish Estelle. The court’s rejection is made without any real
discussion of the salient points of the United States Supreme Court’s
analysis as it fails to discuss the importance the invited-error doctrine
had on the United State Supreme Court’s analysis in refusing to
excuse the defendant’s procedural default.
```
I went through the font to make [a table](https://github.com/freelawproject/courtlistener/issues/937#issuecomment-472633083) mapping symbols in this font to their Unicode counterparts, and I created [a patch](https://gist.github.com/willglynn/3986f6508e07fae01130b78dba2b6d37) special-casing this font. This patch produced the output above.
I intend to clean up that patch and open a merge request which will reference this issue. I'm opening this issue first to distinguish discussion of the problem from discussion of my particular solution.https://gitlab.freedesktop.org/poppler/poppler/-/issues/739Barcode not displayed correctly on resized pdf2024-03-09T12:53:39ZOssi ViljakainenBarcode not displayed correctly on resized pdfAfter resizing a pdf with the folloiwng command: `pdfposter -mA6 -pA6 infile.pdf testipostiA6.pdf`
Evince (poppler library) does not display the tracking barcode. Poppler library is used by Evince to render PDF. However, when opened wit...After resizing a pdf with the folloiwng command: `pdfposter -mA6 -pA6 infile.pdf testipostiA6.pdf`
Evince (poppler library) does not display the tracking barcode. Poppler library is used by Evince to render PDF. However, when opened with other programs, the barcode is displayed correctly.
I first reported it as bug in Evince, but after Evince developer tested it and found it to be a bug in poppler I was asked to report it here.
Here is the resized pdf where poppler does not display the tracking barcode:
[Posti-47ad8469-e79a-4763-afff-193fbfc2ebd1.pdf](/uploads/043dcce19efad889f0b83fd59fc22d25/Posti-47ad8469-e79a-4763-afff-193fbfc2ebd1.pdf)
Expected result with barcode visible (personal data masked):
![Kuvakaappaus_2019-03-13_15-08-55](/uploads/1f4bba174e9164f0f4304865bcee968c/Kuvakaappaus_2019-03-13_15-08-55.png)
Poppler produced result without barcode (personal data masked):
![Kuvakaappaus_2019-03-13_07-47-03](/uploads/0928f4c9083bc86cbe1e22611a6c4826/Kuvakaappaus_2019-03-13_07-47-03.png)
Here is the Evince bug report:
https://gitlab.gnome.org/GNOME/evince/issues/1105https://gitlab.freedesktop.org/poppler/poppler/-/issues/735pdftoppm and pdftocairo rendering difference2020-04-26T14:23:26ZRijk Ravesteinpdftoppm and pdftocairo rendering differenceHi,
`pdftoppm` shows the annotated content of sample.pdf fully correct, but `pdftocairo` seems to miss the z-order at the "Virtual Mechanics" text.
```bash
pdftoppm -png -r 72 -f 1 -l 1 -scale-to 800 sample.pdf > sample-pdftoppm.png
pdf...Hi,
`pdftoppm` shows the annotated content of sample.pdf fully correct, but `pdftocairo` seems to miss the z-order at the "Virtual Mechanics" text.
```bash
pdftoppm -png -r 72 -f 1 -l 1 -scale-to 800 sample.pdf > sample-pdftoppm.png
pdftocairo -pdf sample.pdf sample-pdftocairo.pdf
```
```
pdftoppm version 0.41.0
pdftocairo version 0.41.0
```
[sample-pdftocairo.pdf](/uploads/7645aa2465f0ba3b6673586e386a6373/sample-pdftocairo.pdf)
[sample.pdf](/uploads/7bd864b503a06ca2550ae4dd1ebd6257/sample.pdf)
![snippet-pdftocairo](/uploads/b0ffabacd07c671a8be9b88b0f484eb6/snippet-pdftocairo.png) `pdftocairo`
![snippet-pdftoppm](/uploads/64daa0426387c38c80998eace8c507a6/snippet-pdftoppm.png) `pdftoppm` OKhttps://gitlab.freedesktop.org/poppler/poppler/-/issues/731Recursive function call at function JBIG2Stream::readTextRegion()2019-03-01T22:23:19ZLoginsoftRecursive function call at function JBIG2Stream::readTextRegion()**What is vulnerability** - : During our research there is a recursive function call at function JBIG2Stream::readTextRegion() in JBIG2Stream.cc in poppler 0.74.0.
**Command**- : : pdfimages -f 1 -l 1 -opw testing -upw testing -j -p –q ...**What is vulnerability** - : During our research there is a recursive function call at function JBIG2Stream::readTextRegion() in JBIG2Stream.cc in poppler 0.74.0.
**Command**- : : pdfimages -f 1 -l 1 -opw testing -upw testing -j -p –q $POC output
**POC**- [REPRODUCER](https://github.com/SegfaultMasters/covering360/blob/master/poppler/RFC_POC?raw=true)
**Debug** -
**GDB** -
```
[ Legend: Modified register | Code | Heap | Stack | String ]
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ registers ]────
$rax : 0x7fff8cf5c800 → 0x0000000000000000
$rbx : 0x3be980
$rcx : 0x7fff8cff5000 → 0x0000000000000000
$rdx : 0x7fff8d31b180 → 0x0000000000000000
$rsp : 0x7fffffffc158 → 0x00007ffff6e78cdf → mov rcx, QWORD PTR [rbp-0x38]
$rbp : 0x7fffffffc9e0 → 0x00007fffffffca00 → 0x00007fffffffcdb0 → 0x00007fffffffd3b0 → 0x00007fffffffd5f0 → 0x00007fffffffd620 → 0x00007fffffffd640 → 0x00007fffffffd740
$rsi : 0x0
$rdi : 0x7fff8cf5c800 → 0x0000000000000000
$rip : 0x7ffff5b58963 → <__memset_sse2_unaligned_erms+147> movdqa XMMWORD PTR [rcx], xmm0
$r8 : 0x1000719e3900 → 0x0000000000000000
$r9 : 0x100071a5b630 → 0xfafafafafafafa01
$r10 : 0x4032
$r11 : 0x202
$r12 : 0x7fff8cf5c800 → 0x0000000000000000
$r13 : 0x7fff8d31b180 → 0x0000000000000000
$r14 : 0x0
$r15 : 0x0
$eflags: [zero carry parity adjust sign trap INTERRUPT direction overflow RESUME virtualx86 identification]
$fs: 0x0000 $gs: 0x0000 $ds: 0x0000 $cs: 0x0033 $es: 0x0000 $ss: 0x002b
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ stack ]────
0x00007fffffffc158│+0x00: 0x00007ffff6e78cdf → mov rcx, QWORD PTR [rbp-0x38] ← $rsp
0x00007fffffffc160│+0x08: 0x00007ffff6726e6f → <JBIG2Stream::readTextRegion(bool,+0> mov QWORD PTR [rbp-0x2d8], r14
0x00007fffffffc168│+0x10: 0x00007ffff6722a77 → <JBIG2Stream::readSymbolDictSeg(unsigned+0> add rsp, 0xb0
0x00007fffffffc170│+0x18: 0x00007ffff671f5a2 → <JBIG2Stream::readSegments()+2546> xor eax, 0x1
0x00007fffffffc178│+0x20: 0x00007ffff671e351 → <JBIG2Stream::reset()+1633> mov rax, QWORD PTR [rbp-0x18]
0x00007fffffffc180│+0x28: 0x00007ffff6609541 → <Object::streamReset()+255> nop
0x00007fffffffc188│+0x30: 0x00007ffff673bee2 → <Lexer::Lexer(XRef*,+0> nop
0x00007fffffffc190│+0x38: 0x00007ffff66354eb → 0x00000040bfe6894d → 0x0000000000000000
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ code:i386:x86-64 ]────
0x7ffff5b5895a <__memset_sse2_unaligned_erms+138> and rdx, 0xffffffffffffffc0
0x7ffff5b5895e <__memset_sse2_unaligned_erms+142> cmp rcx, rdx
0x7ffff5b58961 <__memset_sse2_unaligned_erms+145> je 0x7ffff5b58923 <__memset_sse2_unaligned_erms+83>
→ 0x7ffff5b58963 <__memset_sse2_unaligned_erms+147> movdqa XMMWORD PTR [rcx], xmm0
0x7ffff5b58967 <__memset_sse2_unaligned_erms+151> movdqa XMMWORD PTR [rcx+0x10], xmm0
0x7ffff5b5896c <__memset_sse2_unaligned_erms+156> movdqa XMMWORD PTR [rcx+0x20], xmm0
0x7ffff5b58971 <__memset_sse2_unaligned_erms+161> movdqa XMMWORD PTR [rcx+0x30], xmm0
0x7ffff5b58976 <__memset_sse2_unaligned_erms+166> add rcx, 0x40
0x7ffff5b5897a <__memset_sse2_unaligned_erms+170> cmp rdx, rcx
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ threads ]────
[#0] Id 1, Name: "pdfimages", stopped, reason: SIGINT
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ trace ]────
[#0] 0x7ffff5b58963 → Name: __memset_sse2_unaligned_erms()
[#1] 0x7ffff6e78cdf → mov rcx, QWORD PTR [rbp-0x38]
[#2] 0x7ffff671b455 → Name: JBIG2Bitmap::clearToZero(this=0x60300001b400)
[#3] 0x7ffff6726f27 → Name: JBIG2Stream::readTextRegion(this=0x612000000f40, huff=0x0, refine=0x1, w=0x95e, h=0x3320, numInstances=0x5, logStrips=0x0, numSyms=0x3d0, symCodeTab=0x0, symCodeLen=0xe, syms=0x633000000800, defPixel=0x0, combOp=0x0, transposed=0x0, refCorner=0x1, sOffset=0x0, huffFSTable=0x7ffff6de4de0 <huffTableF>, huffDSTable=0x7ffff6de5020 <huffTableH>, huffDTTable=0x7ffff6de54c0 <huffTableK>, huffRDWTable=0x7ffff6de5840 <huffTableO>, huffRDHTable=0x7ffff6de5840 <huffTableO>, huffRDXTable=0x7ffff6de5840 <huffTableO>, huffRDYTable=0x7ffff6de5840 <huffTableO>, huffRSizeTable=0x7ffff6de4aa0 <huffTableA>, templ=0x0, atx=0x7fffffffd280, aty=0x7fffffffd2c0)
[#4] 0x7ffff6722a77 → Name: JBIG2Stream::readSymbolDictSeg(this=0x612000000f40, segNum=0x0, length=0x2e2e2e2e, refSegs=0x0, nRefSegs=0x0)
[#5] 0x7ffff671f5a2 → Name: JBIG2Stream::readSegments(this=0x612000000f40)
[#6] 0x7ffff671e351 → Name: JBIG2Stream::reset(this=0x612000000f40)
[#7] 0x7ffff6609541 → Name: Object::streamReset(this=0x610000001658)
[#8] 0x7ffff673bee2 → Name: Lexer::Lexer(this=0x610000001640, xrefA=0x6120000001c0, obj=0x7fffffffd910)
[#9] 0x7ffff66354eb → Name: Gfx::display(this=0x612000000ac0, obj=0x7fffffffd910, topLevel=0x1)
```https://gitlab.freedesktop.org/poppler/poppler/-/issues/730recursive function call in function JBIG2Stream::readGenericBitmap()2019-09-20T22:08:03ZLoginsoftrecursive function call in function JBIG2Stream::readGenericBitmap()**What is vulnerability** - During our research there is a recursive function call in function JBIG2Stream::readGenericBitmap() located at JBIG2Stream.cc in poppler 0.74.0.
**Command**- : pdfseperate -f 1 -l 2 $POC res-%d.pdf
**POC**- ...**What is vulnerability** - During our research there is a recursive function call in function JBIG2Stream::readGenericBitmap() located at JBIG2Stream.cc in poppler 0.74.0.
**Command**- : pdfseperate -f 1 -l 2 $POC res-%d.pdf
**POC**- [REPRODUCER](https://github.com/SegfaultMasters/covering360/blob/master/poppler/URL7_POC?raw=true)
**Debug** -
**GDB** -
```
[ Legend: Modified register | Code | Heap | Stack | String ]
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ registers ]────
$rax : 0x1
$rbx : 0x11
$rcx : 0x619000001500 → 0x004e00330038003d ("="?)
$rdx : 0x0
$rsp : 0x7fffffffb858 → 0x00007ffff6731a83 → <JBIG2Stream::readGenericBitmap(bool,+0> mov DWORD PTR [rbp-0x104], eax
$rbp : 0x7fffffffba10 → 0x00007fffffffbf90 → 0x00007fffffffc1d0 → 0x00007fffffffc200 → 0x00007fffffffc520 → 0x00007fffffffc780 → 0x00007fffffffc910 → 0x00007fffffffca20
$rsi : 0x7
$rdi : 0x2
$rip : 0x7ffff6716411 → <JArithmeticDecoder::decodeBit(unsigned+0> ret
$r8 : 0x5b
$r9 : 0x10007d307e93 → 0xfafafafafafafa02
$r10 : 0x4032
$r11 : 0x202
$r12 : 0x7fffffffb980 → 0x0000000041b58ab3
$r13 : 0xffffffff730 → 0x0000000000000000
$r14 : 0x7fffe97eb800 → 0xffffffffffffffff
$r15 : 0x7fffffffb980 → 0x0000000041b58ab3
$eflags: [zero carry PARITY adjust SIGN trap INTERRUPT direction overflow resume virtualx86 identification]
$ss: 0x002b $fs: 0x0000 $es: 0x0000 $cs: 0x0033 $gs: 0x0000 $ds: 0x0000
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ stack ]────
0x00007fffffffb858│+0x00: 0x00007ffff6731a83 → <JBIG2Stream::readGenericBitmap(bool,+0> mov DWORD PTR [rbp-0x104], eax ← $rsp
0x00007fffffffb860│+0x08: 0x0000000000000000
0x00007fffffffb868│+0x10: 0x00007fffffffbf20 → 0x00000000ffffffd8 → 0x0000000000000000
0x00007fffffffb870│+0x18: 0x00007fffffffbee0 → 0x0000000000000000
0x00007fffffffb878│+0x20: 0x0000000000000000
0x00007fffffffb880│+0x28: 0x0000000000000000
0x00007fffffffb888│+0x30: 0x0000001700000002 → 0x0000000000000000
0x00007fffffffb890│+0x38: 0x0000000000033676
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ code:i386:x86-64 ]────
0x7ffff6716408 <JArithmeticDecoder::decodeBit(unsigned+0> jmp 0x7ffff67162df <JArithmeticDecoder::decodeBit(unsigned int, JArithmeticDecoderStats*)+2579>
0x7ffff671640d <JArithmeticDecoder::decodeBit(unsigned+0> mov eax, DWORD PTR [rbp-0x10]
0x7ffff6716410 <JArithmeticDecoder::decodeBit(unsigned+0> leave
→ 0x7ffff6716411 <JArithmeticDecoder::decodeBit(unsigned+0> ret
↳ 0x7ffff6731a83 <JBIG2Stream::readGenericBitmap(bool,+0> mov DWORD PTR [rbp-0x104], eax
0x7ffff6731a89 <JBIG2Stream::readGenericBitmap(bool,+0> cmp DWORD PTR [rbp-0x104], 0x0
0x7ffff6731a90 <JBIG2Stream::readGenericBitmap(bool,+0> setne al
0x7ffff6731a93 <JBIG2Stream::readGenericBitmap(bool,+0> test al, al
0x7ffff6731a95 <JBIG2Stream::readGenericBitmap(bool,+0> je 0x7ffff6731b48 <JBIG2Stream::readGenericBitmap(bool, int, int, int, bool, bool, JBIG2Bitmap*, int*, int*, int)+21084>
0x7ffff6731a9b <JBIG2Stream::readGenericBitmap(bool,+0> mov rax, QWORD PTR [rbp-0xd0]
──────────────────────────────────────────────────────────────────────────────────────────────────────────────[ source:/home/aceteam/Desktop/packages/poppler-master/poppler/JArithmeticDecoder.cc+230 ]────
225 c <<= 1;
226 --ct;
227 } while (!(a & 0x80000000));
228 }
229 return bit;
→ 230 }
231
232 int JArithmeticDecoder::decodeByte(unsigned int context,
233 JArithmeticDecoderStats *stats) {
234 int byte;
235 int i;
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ threads ]────
[#0] Id 1, Name: "pdfseparate", stopped, reason: SIGINT
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[ trace ]────
[#0] 0x7ffff6716411 → Name: JArithmeticDecoder::decodeBit(this=0x604000001a50, context=0xaa, stats=0x602000024bb0)
[#1] 0x7ffff6731a83 → Name: JBIG2Stream::readGenericBitmap(this=0x612000000340, mmr=0x0, w=0x33676, h=0x17, templ=0x2, tpgdOn=0x0, useSkip=0x0, skip=0x0, atx=0x7fffffffbee0, aty=0x7fffffffbf20, mmrDataLength=0x0)
[#2] 0x7ffff6722b0f → Name: JBIG2Stream::readSymbolDictSeg(this=0x612000000340, segNum=0x686c73ac, length=0x7f41d7d0, refSegs=0x0, nRefSegs=0x0)
[#3] 0x7ffff671f5a2 → Name: JBIG2Stream::readSegments(this=0x612000000340)
[#4] 0x7ffff671e351 → Name: JBIG2Stream::reset(this=0x612000000340)
[#5] 0x7ffff68295a5 → Name: XRef::readXRefStream(this=0x6120000001c0, xrefStr=0x612000000340, pos=0x612000000278)
[#6] 0x7ffff68273d3 → Name: XRef::readXRef(this=0x6120000001c0, pos=0x612000000278, followedXRefStm=0x7fffffffc8a0, xrefStreamObjsNum=0x0)
[#7] 0x7ffff6824ab8 → Name: XRef::XRef(this=0x6120000001c0, strA=0x613000000040, pos=0x74, mainXRefEntriesOffsetA=0x0, wasReconstructed=0x7fffffffc970, reconstruct=0x0)
[#8] 0x7ffff676aba3 → Name: PDFDoc::setup(this=0x610000000040, ownerPassword=0x0, userPassword=0x0)
[#9] 0x7ffff676a492 → Name: PDFDoc::PDFDoc(this=0x610000000040, fileNameA=0x60300000e020, ownerPassword=0x0, userPassword=0x0, guiDataA=0x0)
```https://gitlab.freedesktop.org/poppler/poppler/-/issues/726Pdf that is made of scans has all images with the wrong dimensions2019-02-27T22:39:29ZmirhPdf that is made of scans has all images with the wrong dimensions[File](https://fordham.bepress.com/cgi/viewcontent.cgi?article=1005&context=phil_babich).
[pdftohtml](/uploads/529cbfb07e4f6cc9b21a0b40f12e2c13/pdftohtml.png)
[expected](/uploads/c1fefcb7b652eecb56e95ecee99532d9/expected.png)
Xpdf, fi...[File](https://fordham.bepress.com/cgi/viewcontent.cgi?article=1005&context=phil_babich).
[pdftohtml](/uploads/529cbfb07e4f6cc9b21a0b40f12e2c13/pdftohtml.png)
[expected](/uploads/c1fefcb7b652eecb56e95ecee99532d9/expected.png)
Xpdf, firefox, sumatra and some quite old version of evince I found, all seem to work and display it correctly.https://gitlab.freedesktop.org/poppler/poppler/-/issues/722pdfunite: Broken result if using certain order2021-04-07T16:03:42ZJosias Montagpdfunite: Broken result if using certain orderExample files are attached.
When using pdfunite with the two files like this:
`pdfunite 1.pdf 2.pdf out_broken.pdf`
The out_broken.pdf has several problems. For example, the bullet points on page 4 are replaced by strange characters. ...Example files are attached.
When using pdfunite with the two files like this:
`pdfunite 1.pdf 2.pdf out_broken.pdf`
The out_broken.pdf has several problems. For example, the bullet points on page 4 are replaced by strange characters. Additionally, the following error appears:
`Internal Error: xref num 0 not found but needed, try to reconstruct<0a>`
When changing the order, everything is fine:
`pdfunite 2.pdf 1.pdf out_ok.pdf`
The result is ok, no error appears.
[1.pdf](/uploads/ce742142055edc34df1148d0873c1ede/1.pdf)
[2.pdf](/uploads/949ca337c4a935f90879f88bb8e1f6b7/2.pdf)
[out_broken.pdf](/uploads/e8c92eb7fcd8eac4a3dbf8cd875fba21/out_broken.pdf)
[out_ok.pdf](/uploads/5132297135225b7dc2b13ff80b6e003d/out_ok.pdf)https://gitlab.freedesktop.org/poppler/poppler/-/issues/721pdftocairo - Incorrect transform matrix in SVG2019-02-22T10:23:48ZКонстантин Савинскийpdftocairo - Incorrect transform matrix in SVGResult SVG files has incorrect transform matrix
![Screenshot_1](/uploads/dc30540d3630b26117ad4daa6a69a4d5/Screenshot_1.png)
cmd: pdftocairo -svg bg.pdf bg.svg
poppler: 0.74.0
cairo: 1.16.0
source file: [bg.pdf](/uploads/f81533f542a79...Result SVG files has incorrect transform matrix
![Screenshot_1](/uploads/dc30540d3630b26117ad4daa6a69a4d5/Screenshot_1.png)
cmd: pdftocairo -svg bg.pdf bg.svg
poppler: 0.74.0
cairo: 1.16.0
source file: [bg.pdf](/uploads/f81533f542a79b7cd615e4719180d6bb/bg.pdf)https://gitlab.freedesktop.org/poppler/poppler/-/issues/720In some cases texts explicitly focused on at once are highlighted in a non-oc...2019-02-12T23:40:58ZRicky-TiggIn some cases texts explicitly focused on at once are highlighted in a non-ocntinuous way.OS: _Fedora_; Components: poppler-glib 0.67.0-10.fc29 @updates; evince 3.30.2
Document sample – _Libreoffice Writer_, [file.odt](/GNOME/evince/uploads/7632be43b414eb631601a9da35545101/file.odt) – from which a _PDF_ document – [file.pdf]...OS: _Fedora_; Components: poppler-glib 0.67.0-10.fc29 @updates; evince 3.30.2
Document sample – _Libreoffice Writer_, [file.odt](/GNOME/evince/uploads/7632be43b414eb631601a9da35545101/file.odt) – from which a _PDF_ document – [file.pdf](/GNOME/evince/uploads/c3109f875d4853293e7203e5952008be/file.pdf) – is created using its built-in feature.
![text_editor_odt__](https://gitlab.gnome.org/GNOME/evince/uploads/9fcd21c54ab51c0ecc62540431fd3711/text_editor_odt__.png)
- In some cases texts explicitly focused on – in purpose to be copied/pasted – within *Evince* **at once** are highlighted in a non-continuous way. Some fractures are visible within highlights which cover text on same rows. Highlighting may jump from one text from a row to another text from another row, while continuous highlights, up to the end of their respective rows have not been reached first. Such copied texts can only be pasted incorrectly.
![evince_3.30.2_2](https://gitlab.gnome.org/GNOME/evince/uploads/41c34204656f480419fe9d2d5e85bcd6/evince_3.30.2_2.png)
As a result once above highlighted texts have been pasted into a text editor, they are displayed that way:
_# livecd-iso-to-disk --format --reset-mbr_
_x86_64-<version_nro>.iso /dev/sdd_
_Fedor_
- While in some other cases, texts are correctly highlighted, which is expressed by continuous highlights within each row.
![evince_3.30.2_1](https://gitlab.gnome.org/GNOME/evince/uploads/cb630307fcbb7a8ecbc6586b4d5462b1/evince_3.30.2_1.png)https://gitlab.freedesktop.org/poppler/poppler/-/issues/719Invisible text on some slanted lines of a PDF2019-02-22T10:36:27ZScott KostyshakInvisible text on some slanted lines of a PDFIn the attached PDF,
[Silverman.83.pdf](/uploads/7b8eb4a32f4f7e9246fa4671aebf456d/Silverman.83.pdf), some text is invisible when viewed with Okular, Xournal, Zathura, and Inkscape; and when converted with pdftocairo and pdftoppm. For ex...In the attached PDF,
[Silverman.83.pdf](/uploads/7b8eb4a32f4f7e9246fa4671aebf456d/Silverman.83.pdf), some text is invisible when viewed with Okular, Xournal, Zathura, and Inkscape; and when converted with pdftocairo and pdftoppm. For example, the first part of the 7th line from the top is not visible. I cannot reproduce the problem with mupdf, Chromium, and Firefox, or when converting with ImageMagick.
Please let me know if there's any other details I could provide that would be helpful. I might be able to figure out how I made this PDF and provide steps to reproduce.https://gitlab.freedesktop.org/poppler/poppler/-/issues/718Null-pointer dereference in CairoOutputDev::setSoftMask2020-11-29T06:38:35ZMaksimNull-pointer dereference in CairoOutputDev::setSoftMaskHi,
There is a null-pointer dereference in CairoOutputDev::setSoftMask. Looks like we don't expect NULL from
```
cairo_image_surface_get_data(source)
```
```
/home/build/utils/pdftocairo -png bug852992_reduced.pdf_mutateds
Syntax Erro...Hi,
There is a null-pointer dereference in CairoOutputDev::setSoftMask. Looks like we don't expect NULL from
```
cairo_image_surface_get_data(source)
```
```
/home/build/utils/pdftocairo -png bug852992_reduced.pdf_mutateds
Syntax Error: Couldn't find trailer dictionary
Syntax Error: Invalid XRef entry 14
Internal Error: xref num 14 not found but needed, try to reconstruct<0a>
Syntax Error: Invalid XRef entry 14
Syntax Error: ExtGState 'CBH' is unknown
Syntax Error: Invalid XRef entry 10
Syntax Error (1095): Invalid soft mask in ExtGState - missing group
Syntax Error (944): Unknown operator 'w<f3><a0><81><94>'
Syntax Error (1007): Unknown operator 'endstreal'
Syntax Error (1009): Unknown operator 'endobj'
Syntax Error (1025): Unknown operator 'obj'
Syntax Error (1043): Unknown operator '>>'
Syntax Error (1046): Unknown operator 'stream'
Syntax Error: ExtGState 'CBH' is unknown
ASAN:SIGSEGV
=================================================================
==76462==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000438421 bp 0x000000000000 sp 0x7ffec94455c0 T0)
#0 0x438420 in CairoOutputDev::setSoftMask(GfxState*, double const*, bool, Function*, GfxColor*) /home/poppler/poppler/CairoOutputDev.cc:1834
#1 0x7f8c2055cd79 in Gfx::drawForm(Object*, Dict*, double const*, double const*, bool, bool, GfxColorSpace*, bool, bool, bool, Function*, GfxColor*) /home/poppler/poppler/Gfx.cc:4870
#2 0x7f8c2055e6a9 in Gfx::doSoftMask(Object*, bool, GfxColorSpace*, bool, bool, Function*, GfxColor*) /home/poppler/poppler/Gfx.cc:1359
#3 0x7f8c20563bc7 in Gfx::opSetExtGState(Object*, int) /home/poppler/poppler/Gfx.cc:1227
#4 0x7f8c20558588 in Gfx::go(bool) /home/poppler/poppler/Gfx.cc:752
#5 0x7f8c2055a8da in Gfx::display(Object*, bool) /home/poppler/poppler/Gfx.cc:714
#6 0x7f8c2055c1b7 in Gfx::drawForm(Object*, Dict*, double const*, double const*, bool, bool, GfxColorSpace*, bool, bool, bool, Function*, GfxColor*) /home/poppler/poppler/Gfx.cc:4838
#7 0x7f8c2057688f in Gfx::doForm(Object*) /home/poppler/poppler/Gfx.cc:4762
#8 0x7f8c205780ee in Gfx::opXObject(Object*, int) /home/poppler/poppler/Gfx.cc:4178
#9 0x7f8c20558588 in Gfx::go(bool) /home/poppler/poppler/Gfx.cc:752
#10 0x7f8c2055a8da in Gfx::display(Object*, bool) /home/poppler/poppler/Gfx.cc:714
#11 0x7f8c207185b3 in Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) /home/poppler/poppler/Page.cc:548
#12 0x40e568 in renderPage /home/poppler/utils/pdftocairo.cc:737
#13 0x40e568 in main /home/poppler/utils/pdftocairo.cc:1257
#14 0x7f8c1f51182f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
#15 0x413bb8 in _start (/home/build/utils/pdftocairo+0x413bb8)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/poppler/poppler/CairoOutputDev.cc:1834 CairoOutputDev::setSoftMask(GfxState*, double const*, bool, Function*, GfxColor*)
```https://gitlab.freedesktop.org/poppler/poppler/-/issues/716[Pdftotext] breaks text layout on following page2019-01-29T12:49:07ZMohamed Nisfan[Pdftotext] breaks text layout on following pageI have tried with layout option only
The latest stable release is poppler-0.73.0.tar.xz, released on Jan 7, 2019
PDF File
![image](/uploads/bbff7e73b33046f78ad441dea13e8c7d/image.png)
Converted Text
![Capture](/uploads/7759643819d05a...I have tried with layout option only
The latest stable release is poppler-0.73.0.tar.xz, released on Jan 7, 2019
PDF File
![image](/uploads/bbff7e73b33046f78ad441dea13e8c7d/image.png)
Converted Text
![Capture](/uploads/7759643819d05a88abdfed16eefe1d1c/Capture.PNG)https://gitlab.freedesktop.org/poppler/poppler/-/issues/715glib: Provide accessor functions for PopplerAttachment and seal the struct in...2020-01-08T20:55:24ZChristian Perschglib: Provide accessor functions for PopplerAttachment and seal the struct in futurePopplerAttachment has public struct members that contain the attachment's data fields (name, desc, dates etc).
The modern GObject idiom is to have no publicly accessible fields in object structs, and instead provide all data via accesso...PopplerAttachment has public struct members that contain the attachment's data fields (name, desc, dates etc).
The modern GObject idiom is to have no publicly accessible fields in object structs, and instead provide all data via accessor functions and GObject properties.
There is also a further problem here in that PopplerAttachment contains 2 timestamps (ctime, mtime) as GTime which is 32-bit. The accessor functions that replace the struct access should return a 64-bit time value, or, (better IMHO), GDateTime.
Once the accessor functions are provided, we should mark the struct fields as deprecated.