Dear Maintainer,
I could reproduce this inside a minimal qemu VM.
Below [1] is a backtrace one instruction before the crash.
It looks like this "font" object has the create_hb_font
function pointer never initialized.
It also crashes with LANG=C set.

Unfortunately to me it is not certain if this is
an issue with pango or the application.
Additionally it looks like there were some changes in
pango (e.g. [2]) between the versions of bullseye and buster.
In the latter no such crash is observable.

Kind regards,
Bernhard


[1]
    (rr) reverse-stepi
    0x00007fb5b32b8c33 in pango_font_get_hb_font 
(font=font@entry=0x558dd5dcdb30) at ../pango/fonts.c:1928
    1928      priv->hb_font = PANGO_FONT_GET_CLASS (font)->create_hb_font 
(font);
    1: x/i $pc
    => 0x7fb5b32b8c33 <pango_font_get_hb_font+83>:  call   *0xc0(%r12)
    (rr) bt
    #0  0x00007fb5b32b8c33 in pango_font_get_hb_font 
(font=font@entry=0x558dd5dcdb30) at ../pango/fonts.c:1928
    #1  0x00007fb5b32d4e13 in pango_font_get_hb_font_for_context 
(context=0x7ffc5f4f04c0, font=0x558dd5dcdb30) at ../pango/pangofc-shape.c:277
    #2  pango_hb_shape (font=0x558dd5dcdb30, item_text=item_text@entry=0x7fb5b32dff4e <lang_pool+1006> 
"Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.", item_length=item_length@entry=68, 
analysis=analysis@entry=0x7ffc5f4f0850, glyphs=glyphs@entry=0x558dd5acc6c0, 
paragraph_text=paragraph_text@entry=0x7fb5b32dff4e <lang_pool+1006> "Zwölf Boxkämpfer jagen Viktor 
quer über den großen Sylter Deich.", paragraph_length=68) at ../pango/pangofc-shape.c:345
    #3  0x00007fb5b32d466f in pango_shape_with_flags (item_text=0x7fb5b32dff4e <lang_pool+1006> 
"Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich.", item_length=<optimized 
out>, paragraph_text=<optimized out>, paragraph_length=68, analysis=0x7ffc5f4f0850, 
glyphs=0x558dd5acc6c0, flags=PANGO_SHAPE_NONE) at ../pango/shape.c:205
    #4  0x00007fb5b32d4adb in pango_shape_full (item_text=<optimized out>, 
item_length=<optimized out>, paragraph_text=<optimized out>, paragraph_length=<optimized 
out>, analysis=analysis@entry=0x7ffc5f4f0850, glyphs=glyphs@entry=0x558dd5acc6c0) at 
../pango/shape.c:96
    #5  0x00007fb5b32d4af0 in pango_shape (text=<optimized out>, length=<optimized 
out>, analysis=analysis@entry=0x7ffc5f4f0850, glyphs=glyphs@entry=0x558dd5acc6c0) at 
../pango/shape.c:63
    #6  0x00007fb5b264b273 in itemize_string_foreach (font=font@entry=0x558dd5dcdb30, 
language=language@entry=0x0, str=<optimized out>, func=func@entry=0x7fb5b264b010 
<get_subfonts_foreach>, data=data@entry=0x7ffc5f4f08f0) at pangox.c:777
    #7  0x00007fb5b264b9b4 in get_font_metrics_from_string 
(metrics=0xffffffffd60e1730, str=<optimized out>, language=0x0, 
font=0x558dd5dcdb30) at pangox.c:922
    #8  pango_x_font_get_metrics (font=0x558dd5dcdb30, language=0x0) at 
pangox.c:984
    #9  0x0000558dd55f4556 in pangofont_wcl::ogl_InitPangoFont(char const*) 
(this=0x558dd5c19bc0, fs=0x558dd5623360 "courier 12") at pangofont_wcl.cpp:79
    #10 0x0000558dd55f492a in oglview_wcl::InitGL() (this=0x558dd5c19bc0) at 
oglview_wcl.cpp:929
    #11 0x00007fb5b2c3eebe in base_wcl::LinkWnd(base_wnd*) 
(this=0x558dd5c19bc0, w=0x558dd5c18fa0) at base_wcl.cpp:111
    #12 0x0000558dd55eb93d in project::AddGraphicsClient(custom_camera*, bool) 
(this=this@entry=0x558dd5a83df0, cam=0x558dd5c8fae0, cam@entry=0x0, 
detached=detached@entry=false) at project.cpp:622
    #13 0x0000558dd561dc12 in gtk_project::DoSafeStart() (this=0x558dd5a83df0) 
at gtk_project.cpp:80
    #14 0x0000558dd561aed3 in gtk_app::gtk_app() (this=0x558dd59fde70) at 
gtk_app.cpp:450
    #15 0x0000558dd561b165 in gtk_app::GetAppX() () at gtk_app.cpp:465
    #16 0x0000558dd55d49d4 in main(int, char**) (argc=<optimized out>, 
argv=<optimized out>) at gtk_main.cpp:116
    (rr) x/1xg $r12+0xc0
    0x558dd60e1e70: 0x0000000000000000


[2]
    
https://gitlab.gnome.org/GNOME/pango/-/commit/b5634799586ed8e3496ffc237b8d08e6d4e64d67

Reply via email to