missing operation in gegl graph syntax causes crash
Environment/Versions
- GIMP version:
- 2.99.17 commit 9efd5fd4
Mageia Linux 64
Reproduction
type, or paste, id=1 aux=[ ref=1 ] into the GEGL Graph plug-in (with an open image).
GIMP dumps core when you press the 1 key, or when you paste.
Although this is erroneous input, it's common input if you are editing/developing a graph, changing one operation to another, as when you delete the first operation, ready to type the new one, you get a crash.
Additional information
Thread 1 "gimp-2.99" received signal SIGSEGV, Segmentation fault.
gegl_pad_is_input (self=0x0) at ../gegl/graph/gegl-pad.c:255
trace:
#0 gegl_pad_is_input (self=0x0) at ../gegl/graph/gegl-pad.c:255
#1 0x00007fdf33e5db71 in gegl_node_connect
(source=source@entry=0xf494860 [GeglNode], source_pad_name=source_pad_name@entry=0x7fdf33ebc3d6 "output", sink=sink@entry=0xf494860 [GeglNode], sink_pad_name=sink_pad_name@entry=0x2a09679 "aux") at ../gegl/graph/gegl-node.c:883
#2 0x00007fdf33e09910 in gegl_create_chain_argv
(argv=<optimized out>, start=<optimized out>, proxy=<optimized out>, time=0, rel_dim=<optimized out>, path_root=<optimized out>, error=<optimized out>) at ../gegl/gegl-serialize.c:383
#3 0x00007fdf33e0aa17 in gegl_create_chain
(str=<optimized out>, op_start=op_start@entry=0xf494860 [GeglNode], op_end=op_end@entry=0xf493b70 [GeglNode], time=time@entry=0, rel_dim=1124, path_root=path_root@entry=0x7ffc02f39120 "/home/lee/src/x/gnome/gegl", error=error@entry=0x7ffc02f39118) at ../gegl/gegl-serialize.c:884
#4 0x00007fdf07044b13 in prepare (operation=0xc10e350 [GeglOpgegl_c]) at ../operations/common/gegl.c:111
#5 0x00007fdf33e783a5 in gegl_graph_prepare (path=0xc9b9810) at ../gegl/process/gegl-graph-traversal.c:221
#6 0x00007fdf33e77a24 in gegl_eval_manager_prepare (self=0xc7f4be0 [GeglEvalManager]) at ../gegl/process/gegl-eval-manager.c:93
#7 0x00007fdf33e77ab9 in gegl_eval_manager_get_bounding_box (self=self@entry=0xc7f4be0 [GeglEvalManager]) at ../gegl/process/gegl-eval-manager.c:102
#8 0x00007fdf33e5a1ea in gegl_node_get_bounding_box (self=0xf493e50 [GeglNode]) at ../gegl/graph/gegl-node.c:1866
#9 gegl_node_property_changed (gobject=<optimized out>, arg1=0x29de670 [GParamString], user_data=0xf493e50) at ../gegl/graph/gegl-node.c:1398
#13 0x00007fdf34066682 in <emit signal notify:string on instance 0xc10e350 [GeglOpgegl_c]>
(instance=instance@entry=0xc10e350, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#10 0x00007fdf3404d260 in g_closure_invoke
(closure=0xce6dca0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7ffc02f4d3d0, invocation_hint=invocation_hint@entry=0x7ffc02f4d370) at ../gobject/gclosure.c:832
#11 0x00007fdf3405f826 in signal_emit_unlocked_R
(node=node@entry=0x25b20c0, detail=detail@entry=2362, instance=instance@entry=0xc10e350, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc02f4d3d0) at ../gobject/gsignal.c:3812
#12 0x00007fdf34066516 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc02f4d578) at ../gobject/gsignal.c:3565
#14 0x00007fdf34050fb4 in g_object_dispatch_properties_changed (object=0xc10e350 [GeglOpgegl_c], n_pspecs=<optimized out>, pspecs=<optimized out>)
at ../gobject/gobject.c:1428
#15 0x00007fdf34051904 in g_object_notify_queue_thaw (object=0xc10e350 [GeglOpgegl_c], nqueue=<optimized out>) at ../gobject/gobject.c:359
#16 0x00007fdf34054e0c in g_object_setv (values=<optimized out>, names=<optimized out>, n_properties=<optimized out>, object=0xc10e350 [GeglOpgegl_c])
at ../gobject/gobject.c:2727
#17 g_object_setv (object=0xc10e350 [GeglOpgegl_c], n_properties=<optimized out>, names=<optimized out>, values=<optimized out>)
at ../gobject/gobject.c:2694
#18 0x00007fdf34055e2b in g_object_set_property (object=<optimized out>, property_name=<optimized out>, value=<optimized out>)
at ../gobject/gobject.c:3023
#19 0x00007fdf33e5b09c in gegl_node_set_property (self=self@entry=0xf493e50 [GeglNode], property_name=<optimized out>, value=value@entry=0x7ffc02f4d7a0)
at ../gegl/graph/gegl-node.c:1679
#20 0x0000000000676c82 in gimp_operation_config_config_notify
(config=0xc6daef0 [GimpGegl-gegl-gegl-config], gimp_pspec=<optimized out>, node=0xf493e50 [GeglNode])
at ../app/operations/gimp-operation-config.c:554
#24 0x00007fdf34066682 in <emit signal notify:string on instance 0xc6daef0 [GimpGegl-gegl-gegl-config]>
(instance=instance@entry=0xc6daef0, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3622
#21 0x00007fdf3404d260 in g_closure_invoke
(closure=0xbedd4e0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7ffc02f4d9a0, invocation_hint=invocation_--Type <RET> for more, q to quit, c to continue without paging--
hint@entry=0x7ffc02f4d940) at ../gobject/gclosure.c:832
#22 0x00007fdf3405f826 in signal_emit_unlocked_R
(node=node@entry=0x25b20c0, detail=detail@entry=2362, instance=instance@entry=0xc6daef0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc02f4d9a0) at ../gobject/gsignal.c:3812
#23 0x00007fdf34066516 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc02f4db48) at ../gobject/gsignal.c:3565
#25 0x00007fdf34050fb4 in g_object_dispatch_properties_changed
(object=0xc6daef0 [GimpGegl-gegl-gegl-config], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../gobject/gobject.c:1428
#26 0x00007fdf34051904 in g_object_notify_queue_thaw (object=0xc6daef0 [GimpGegl-gegl-gegl-config], nqueue=<optimized out>) at ../gobject/gobject.c:359
#27 0x00007fdf34055118 in g_object_set_valist
(object=0xc6daef0 [GimpGegl-gegl-gegl-config], first_property_name=<optimized out>, var_args=0x7ffc02f4ddc8) at ../gobject/gobject.c:2793
#28 0x00007fdf34055d1f in g_object_set (_object=_object@entry=0xc6daef0, first_property_name=0x7fdf33eb8028 "string") at ../gobject/gobject.c:2957
#29 0x00007fdf34247433 in gimp_prop_text_buffer_callback (text_buffer=0xc6fd0f0 [GtkTextBuffer], config=0xc6daef0 [GimpGegl-gegl-gegl-config])
at ../libgimpwidgets/gimppropwidgets.c:2498
#33 0x00007fdf34066682 in <emit signal changed on instance 0xc6fd0f0 [GtkTextBuffer]>
(instance=instance@entry=0xc6fd0f0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#30 0x00007fdf3404d260 in g_closure_invoke
(closure=0xc0c2400, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffc02f4e150, invocation_hint=invocation_hint@entry=0x7ffc02f4e0f0) at ../gobject/gclosure.c:832
#31 0x00007fdf3405f826 in signal_emit_unlocked_R
(node=node@entry=0x755b350, detail=detail@entry=0, instance=instance@entry=0xc6fd0f0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc02f4e150) at ../gobject/gsignal.c:3812
#32 0x00007fdf34066516 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc02f4e2d8) at ../gobject/gsignal.c:3565
#34 0x00007fdf330a5065 in gtk_text_buffer_real_insert_text
(buffer=0xc6fd0f0 [GtkTextBuffer], iter=0x7ffc02f4e850, text=0xc912fc0 " id=1 aux=[ ref=1 ] ", len=20) at ../gtk/gtktextbuffer.c:916
#38 0x00007fdf34066682 in <emit signal insert-text on instance 0xc6fd0f0 [GtkTextBuffer]>
(instance=instance@entry=0xc6fd0f0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
#35 0x00007fdf3404d260 in g_closure_invoke
(closure=closure@entry=0x7a93f80, return_value=return_value@entry=0x0, n_param_values=4, param_values=param_values@entry=0x7ffc02f4e570, invocation_hint=invocation_hint@entry=0x7ffc02f4e510) at ../gobject/gclosure.c:832
#36 0x00007fdf3405f955 in signal_emit_unlocked_R
(node=node@entry=0x7a98c90, detail=detail@entry=0, instance=instance@entry=0xc6fd0f0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc02f4e570) at ../gobject/gsignal.c:3851
#37 0x00007fdf34066516 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc02f4e748) at ../gobject/gsignal.c:3565
#39 0x00007fdf330a519d in gtk_text_buffer_emit_insert
(buffer=buffer@entry=0xc6fd0f0 [GtkTextBuffer], iter=iter@entry=0x7ffc02f4e850, text=text@entry=0xc912fc0 " id=1 aux=[ ref=1 ] ", len=<optimized out>, len@entry=-1) at ../gtk/gtktextbuffer.c:937
#40 0x00007fdf330a9398 in gtk_text_buffer_insert_interactive
(buffer=buffer@entry=0xc6fd0f0 [GtkTextBuffer], iter=iter@entry=0x7ffc02f4e850, text=text@entry=0xc912fc0 " id=1 aux=[ ref=1 ] ", len=len@entry=-1, default_editable=1) at ../gtk/gtktextbuffer.c:1029
#41 0x00007fdf330aa0e2 in clipboard_text_received (clipboard=0x7a2c2c0 [GtkClipboard], str=0xc912fc0 " id=1 aux=[ ref=1 ] ", data=0xa5e3e10)
at ../gtk/gtktextbuffer.c:3435
If you have a backtrace for a crash or a warning, paste it here.
Edited by Michael Schumacher