uninitialized gvalue in pack_border
The function pack_border a gvalue without initializing it. https://gitlab.gnome.org/GNOME/gtk/-/blame/gtk-3-24/gtk/gtkcssshorthandpropertyimpl.c?ref_type=heads#L969
I got this backtrace:
gdb> where
where
#0 0x0000007ff6bf4ed0 in g_log (log_domain=log_domain@entry=0x7ff5a823f0 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7ff5a8ac10 "%s: cannot initialize GValue with type '%s', the value has already been initialized as '%s'") at ../../../glib/gmessages.c:1411
#1 0x0000007ff5a7acf4 in g_value_init (value=value@entry=0x7fef0f2600, g_type=g_type@entry=0x18 [gint]) at ../../../gobject/gvalue.c:179
#2 0x0000007ff65024a0 in query_length_as_int (property=<optimized out>, css_value=0x7ff6b22648 <px_singletons>, value=0x7fef0f2600) at ../../../../gtk/gtkcssstylepropertyimpl.c:117
#3 0x0000007ff64fcc80 in pack_border (shorthand=0x7fe807f230 [GtkCssShorthandProperty], value=0x7fe8000b60, query_func=0x7ff665ab08 <gtk_style_context_query_func>, query_data=0x7fdc3e22d0) at ../../../../gtk/gtkcssshorthandpropertyimpl.c:972
#4 0x0000007ff665ba90 in gtk_style_context_get_property (context=0x7fdc3c7130 [GtkStyleContext], property=<optimized out>, state=GTK_STATE_FLAG_NORMAL, value=0x7fe8000b60) at ../../../../gtk/gtkstylecontext.c:841
#5 0x000000500005035c in ()
gdb> x/4xg 0x7fef0f2600
x/4xg 0x7fef0f2600
0x7fef0f2600: 0x0000007fe8000b60 0x0000007fe807f230
0x7fef0f2610: 0x0000000000000000 0x64afaba4d1dd0200
gdb> p $sp
p $sp
$2 = (void *) 0x7fef0f2450
gdb>
gtk_style_context_get_property is called from Lisp code, so gdb doesn't know about it. The gvalue that pack_order passes to query_length_as_int is on the stack and contains random stuff.
Presumably I can use gtk_style_context_get_border, gtk_style_context_get_padding and gtk_style_context_get_margin instead.
Edited by Yehouda Harpaz