I reproduced this bug with the poppler-glib-demo included with poppler with the same PDF file.
What I do reproduce the crash is I run the poppler-glib-demo included with poppler in poppler/glib/demo, go to Links, go to page 4, click "Get Links" and get a segmentation fault with the same backtrace. This is with poppler-0.14.2 which is 4 commits back.
Here is the backtrace, which is like the other one attached:
poppler-0.14.2.real/glib/demo/.libs/poppler-glib-demo ../../../microtype.pdf
[Thread debugging using libthread_db enabled]
Document successfully loaded in 0.0066 seconds
Program received signal SIGSEGV, Segmentation fault.
OptionalContentGroup::getRef (this=0x0) at OptionalContent.cc:314
314 OptionalContent.cc: No such file or directory.
in OptionalContent.cc
(gdb) backtrace full
#0 OptionalContentGroup::getRef (this=0x0) at OptionalContent.cc:314
No locals.
#1 0x00007ffff7bb9f20 in get_layer_for_ref (document=0x6a31c0, layers=0x84a840, ref=0x8a8ef0, preserve_rb=1) at poppler-action.cc:533
layer = 0x847080
ocgRef = {num = 9337824, gen = 0}
l = 0x84a840
#2 0x00007ffff7bba77e in build_ocg_state (document=0x6a31c0, link=<value optimized out>, title=<value optimized out>) at poppler-action.cc:586
layer = <value optimized out>
list = 0x8a8f10
preserve_rb = 1
i = 0
layer_state = 0x0
st_list = 0x8a8ed0
j = 1
#3 _poppler_action_new (document=0x6a31c0, link=<value optimized out>, title=<value optimized out>) at poppler-action.cc:645
No locals.
#4 0x00007ffff7bc0ab3 in poppler_page_get_link_mapping (page=0x8d2b80) at poppler-page.cc:1261
link_action = <value optimized out>
link = 0x75ccc0
i = 0
obj = {type = objNone, {booln = 7119280, intg = 7119280, uintg = 7119280, real = 3.5173916711246697e-317, string = 0x6ca1b0, name = 0x6ca1b0 "\340>l", array = 0x6ca1b0,
dict = 0x6ca1b0, stream = 0x6ca1b0, ref = {num = 7119280, gen = 0}, cmd = 0x6ca1b0 "\340>l"}} __PRETTY_FUNCTION__ = "GList* poppler_page_get_link_mapping(PopplerPage*)"
map_list = <value optimized out>
width = 595.27600000000007
height = 841.88999999999999
#5 0x000000000040fc73 in pgd_links_get_links (button=<value optimized out>, demo=0x81f6c0) at links.c:80
page = 0x8d2b80
mapping = 0x8db2c0
l = <value optimized out>
timer = 0x8e7ac0
#6 0x00007ffff56e7afe in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
[...]
I reproduced this bug with the poppler-glib-demo included with poppler with the same PDF file.
What I do reproduce the crash is I run the poppler-glib-demo included with poppler in poppler/glib/demo, go to Links, go to page 4, click "Get Links" and get a segmentation fault with the same backtrace. This is with poppler-0.14.2 which is 4 commits back.
Here is the backtrace, which is like the other one attached:
poppler- 0.14.2. real/glib/ demo/.libs/ poppler- glib-demo ../../. ./microtype. pdf
[Thread debugging using libthread_db enabled]
Document successfully loaded in 0.0066 seconds
Program received signal SIGSEGV, Segmentation fault. Group:: getRef (this=0x0) at OptionalContent .cc:314 Group:: getRef (this=0x0) at OptionalContent .cc:314 action. cc:533 action. cc:586 action. cc:645 page_get_ link_mapping (page=0x8d2b80) at poppler- page.cc: 1261 697e-317, string = 0x6ca1b0, name = 0x6ca1b0 "\340>l", array = 0x6ca1b0,
__PRETTY_ FUNCTION_ _ = "GList* poppler_ page_get_ link_mapping( PopplerPage* )" libgobject- 2.0.so. 0
OptionalContent
314 OptionalContent.cc: No such file or directory.
in OptionalContent.cc
(gdb) backtrace full
#0 OptionalContent
No locals.
#1 0x00007ffff7bb9f20 in get_layer_for_ref (document=0x6a31c0, layers=0x84a840, ref=0x8a8ef0, preserve_rb=1) at poppler-
layer = 0x847080
ocgRef = {num = 9337824, gen = 0}
l = 0x84a840
#2 0x00007ffff7bba77e in build_ocg_state (document=0x6a31c0, link=<value optimized out>, title=<value optimized out>) at poppler-
layer = <value optimized out>
list = 0x8a8f10
preserve_rb = 1
i = 0
layer_state = 0x0
st_list = 0x8a8ed0
j = 1
#3 _poppler_action_new (document=0x6a31c0, link=<value optimized out>, title=<value optimized out>) at poppler-
No locals.
#4 0x00007ffff7bc0ab3 in poppler_
link_action = <value optimized out>
link = 0x75ccc0
i = 0
obj = {type = objNone, {booln = 7119280, intg = 7119280, uintg = 7119280, real = 3.5173916711246
dict = 0x6ca1b0, stream = 0x6ca1b0, ref = {num = 7119280, gen = 0}, cmd = 0x6ca1b0 "\340>l"}}
map_list = <value optimized out>
width = 595.27600000000007
height = 841.88999999999999
#5 0x000000000040fc73 in pgd_links_get_links (button=<value optimized out>, demo=0x81f6c0) at links.c:80
page = 0x8d2b80
mapping = 0x8db2c0
l = <value optimized out>
timer = 0x8e7ac0
#6 0x00007ffff56e7afe in g_closure_invoke () from /usr/lib/
No symbol table info available.
[...]