Gtk2: clipboard accesses freed memory
- Lazarus/FPC Version: 3.99 d9728c78 / FPC 3.2.3
- Operating System: Fedora 38 / 64bit (In Virtualbox)
Pasted clipboard into leak and traces. Valgrind reports the below 2 errors.
The first one "0 bytes after" may just be "Cnt" being one to big.
The 2nd I have not yet looked into any further.
==7198== Invalid read of size 8
==7198== at 0x520A33: GTK2INT$_$TGTK2WIDGETSET_$__$$_CLIPBOARDGETFORMATS$TCLIPBOARDTYPE$LONGINT$PCLIPBOARDFORMAT$$BOOLEAN (gtk2winapi.inc:555)
==7198== by 0x59615F: LCLINTF_$$_CLIPBOARDGETFORMATS$TCLIPBOARDTYPE$LONGINT$PCLIPBOARDFORMAT$$BOOLEAN (lclintf.inc:78)
==7198== by 0x81A654: CLIPBRD$_$TCLIPBOARD_$__$$_HASFORMAT$QWORD$$BOOLEAN (clipbrd.inc:614)
==7198== by 0xC57BB8: DESIGNER$_$TDESIGNER_$__$$_CANPASTE$$BOOLEAN (designer.pp:1697)
==7198== by 0x4C9DF9: MAIN$_$TMAINIDE_$__$$_UPDATEEDITORCOMMANDS$TOBJECT (main.pp:4032)
==7198== by 0x4C9927: MAIN$_$TMAINIDE_$__$$_UPDATEMAINIDECOMMANDS$TOBJECT (main.pp:3981)
==7198== by 0x72FFEE: LAZMETHODLIST$_$TMETHODLIST_$__$$_CALLNOTIFYEVENTS$TOBJECT (lazmethodlist.pas:341)
==7198== by 0xB6F670: IDECOMMANDS$_$TIDECOMMANDS_$__$$_EXECUTEUPDATEEVENTS (idecommands.pas:1621)
==7198== by 0xB6F391: IDECOMMANDS$_$TIDECOMMANDS_$__$$_APPLICATIONONIDLE$TOBJECT$BOOLEAN (idecommands.pas:1593)
==7198== by 0x498D59: FORMS$_$TAPPLICATION_$__$$_NOTIFYIDLEHANDLER$BOOLEAN (application.inc:749)
==7198== by 0x497FB7: FORMS$_$TAPPLICATION_$__$$_IDLE$BOOLEAN (application.inc:477)
==7198== by 0x49AD07: FORMS$_$TAPPLICATION_$__$$_HANDLEMESSAGE (application.inc:1307)
==7198== by 0x49B6A6: FORMS$_$TAPPLICATION_$__$$_RUNLOOP (application.inc:1449)
==7198== by 0x6C6B4C: INTERFACEBASE$_$TWIDGETSET_$__$$_APPRUN$TAPPLICATIONMAINLOOP (interfacebase.inc:54)
==7198== by 0x49B611: FORMS$_$TAPPLICATION_$__$$_RUN (application.inc:1437)
==7198== by 0x421973: main (lazarus.pp:155)
==7198== Address 0x156ffcf0 is 0 bytes after a block of size 80 alloc'd
==7198== at 0x484280F: malloc (vg_replace_malloc.c:442)
==7198== by 0x44430C: CMEM_$$_CGETMEM$QWORD$$POINTER (in /home/m/laz/lazgit/lazarus)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F98E15: signal_emit_unlocked_R.isra.0 (gsignal.c:3812)
==7198== by 0x4F89CBC: g_signal_emit_valist (gsignal.c:3565)
==7198== by 0x4F8A159: g_signal_emit_by_name (gsignal.c:3664)
==7198== by 0x4B0C401: UnknownInlinedFun (gtkselection.c:2950)
==7198== by 0x4B0C401: _gtk_selection_notify (gtkselection.c:2756)
==7198== by 0x4A973ED: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F99314: signal_emit_unlocked_R.isra.0 (gsignal.c:3851)
==7198== by 0x4F897E1: g_signal_emit_valist (gsignal.c:3575)
==7198== by 0x4F89F32: g_signal_emit (gsignal.c:3622)
==7198== by 0x4BE2BF3: gtk_widget_event_internal.lto_priv.0 (gtkwidget.c:5017)
==7198== by 0x4A9BE6A: UnknownInlinedFun (gtkmain.c:1652)
==7198== by 0x4A9BE6A: gtk_main_do_event (gtkmain.c:1503)
==7198== by 0x48DD18D: gdk_event_dispatch.lto_priv.0 (gdkevents-x11.c:2425)
==7198== by 0x50144FB: UnknownInlinedFun (gmain.c:3460)
==7198== by 0x50144FB: g_main_context_dispatch (gmain.c:4200)
==7198== by 0x50726B7: g_main_context_iterate.isra.0 (gmain.c:4276)
==7198== by 0x5011B82: g_main_context_iteration (gmain.c:4343)
==7198== by 0x515340: GTK2INT$_$TGTK2WIDGETSET_$__$$_APPPROCESSMESSAGES (gtk2widgetset.inc:2504)
==7198== by 0x497EAF: FORMS$_$TAPPLICATION_$__$$_PROCESSMESSAGES (application.inc:452)
==7198== by 0x6EAE05: GTK2PROC_$$_WAITFORCLIPBOARDANSWER$PCLIPBOARDEVENTDATA$$BOOLEAN (gtk2proc.inc:7597)
==7198== by 0x6EB10C: GTK2PROC_$$_REQUESTSELECTIONDATA$PGTKWIDGET$TCLIPBOARDTYPE$QWORD$$TGTKSELECTIONDATA (gtk2proc.inc:7692)
==7198== by 0x52089B: GTK2INT$_$TGTK2WIDGETSET_$__$$_CLIPBOARDGETFORMATS$TCLIPBOARDTYPE$LONGINT$PCLIPBOARDFORMAT$$BOOLEAN (gtk2winapi.inc:503)
==7198== by 0x59615F: LCLINTF_$$_CLIPBOARDGETFORMATS$TCLIPBOARDTYPE$LONGINT$PCLIPBOARDFORMAT$$BOOLEAN (lclintf.inc:78)
==7198== by 0x81A654: CLIPBRD$_$TCLIPBOARD_$__$$_HASFORMAT$QWORD$$BOOLEAN (clipbrd.inc:614)
==7198== by 0xC57BB8: DESIGNER$_$TDESIGNER_$__$$_CANPASTE$$BOOLEAN (designer.pp:1697)
==7198== by 0x4C9DF9: MAIN$_$TMAINIDE_$__$$_UPDATEEDITORCOMMANDS$TOBJECT (main.pp:4032)
==7198== by 0x4C9927: MAIN$_$TMAINIDE_$__$$_UPDATEMAINIDECOMMANDS$TOBJECT (main.pp:3981)
==7198== by 0x72FFEE: LAZMETHODLIST$_$TMETHODLIST_$__$$_CALLNOTIFYEVENTS$TOBJECT (lazmethodlist.pas:341)
==7198== by 0xB6F670: IDECOMMANDS$_$TIDECOMMANDS_$__$$_EXECUTEUPDATEEVENTS (idecommands.pas:1621)
==7198== by 0xB6F391: IDECOMMANDS$_$TIDECOMMANDS_$__$$_APPLICATIONONIDLE$TOBJECT$BOOLEAN (idecommands.pas:1593)
==7198== by 0x498D59: FORMS$_$TAPPLICATION_$__$$_NOTIFYIDLEHANDLER$BOOLEAN (application.inc:749)
==7198== by 0x497FB7: FORMS$_$TAPPLICATION_$__$$_IDLE$BOOLEAN (application.inc:477)
==7198== by 0x49AD07: FORMS$_$TAPPLICATION_$__$$_HANDLEMESSAGE (application.inc:1307)
==7198== by 0x49B6A6: FORMS$_$TAPPLICATION_$__$$_RUNLOOP (application.inc:1449)
==7198==
==7198== Invalid read of size 8
==7198== at 0x5207FC: GTK2INT$_$TGTK2WIDGETSET_$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN_$$_ISFORMATSUPPORTED$crc60BF9FB4 (gtk2winapi.inc:331)
==7198== by 0x520644: GTK2INT$_$TGTK2WIDGETSET_$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN_$$_CHECKATOMFORMAT$crcDE325E89 (gtk2winapi.inc:341)
==7198== by 0x52026A: GTK2INT$_$TGTK2WIDGETSET_$__$$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN (gtk2winapi.inc:364)
==7198== by 0x5960BF: LCLINTF_$$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN (lclintf.inc:71)
==7198== by 0x818DE7: CLIPBRD$_$TCLIPBOARD_$__$$_GETFORMAT$QWORD$TSTREAM$$BOOLEAN (clipbrd.inc:305)
==7198== by 0x819B70: CLIPBRD$_$TCLIPBOARD_$__$$_GETASTEXT$$ANSISTRING (clipbrd.inc:466)
==7198== by 0x1ACE4BA: HEAPTRCVIEW$_$THEAPTRCVIEWFORM_$__$$_DOUPDATELEAKS$BOOLEAN (heaptrcview.pas:322)
==7198== by 0x1ACD339: HEAPTRCVIEW$_$THEAPTRCVIEWFORM_$__$$_BTNCLIPBOARDCLICK$TOBJECT (heaptrcview.pas:134)
==7198== by 0x5E1D01: CONTROLS$_$TCONTROL_$__$$_CLICK (control.inc:2974)
==7198== by 0x64D8E2: STDCTRLS$_$TBUTTONCONTROL_$__$$_CLICK (buttoncontrol.inc:55)
==7198== by 0x64E3D4: STDCTRLS$_$TCUSTOMBUTTON_$__$$_CLICK (buttons.inc:169)
==7198== by 0x64D74D: STDCTRLS$_$TBUTTONCONTROL_$__$$_WMDEFAULTCLICKED$TLMESSAGE (buttoncontrol.inc:21)
==7198== by 0x433969: SYSTEM$_$TOBJECT_$__$$_DISPATCH$formal (in /home/m/laz/lazgit/lazarus)
==7198== by 0x5CD3B0: CONTROLS$_$TWINCONTROL_$__$$_WNDPROC$TLMESSAGE (wincontrol.inc:5471)
==7198== by 0x864DB4: LCLMESSAGEGLUE_$$_DELIVERMESSAGE$TOBJECT$formal$$INT64 (lclmessageglue.pas:114)
==7198== by 0x6E25FA: GTK2PROC_$$_DELIVERMESSAGE$POINTER$formal$$INT64 (gtk2proc.inc:3796)
==7198== by 0x87630C: GTK2WSSTDCTRLS_$$_GTK2WSBUTTON_CLICKED$PGTKWIDGET$PWIDGETINFO$$BOOLEAN32 (gtk2wsstdctrls.pp:2471)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F98E15: signal_emit_unlocked_R.isra.0 (gsignal.c:3812)
==7198== by 0x4F89CBC: g_signal_emit_valist (gsignal.c:3565)
==7198== by 0x4F89F32: g_signal_emit (gsignal.c:3622)
==7198== by 0x49D05A8: UnknownInlinedFun (gtkbutton.c:1712)
==7198== by 0x49D05A8: gtk_real_button_released.lto_priv.0 (gtkbutton.c:1702)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F98F10: signal_emit_unlocked_R.isra.0 (gsignal.c:3742)
==7198== by 0x4F89CBC: g_signal_emit_valist (gsignal.c:3565)
==7198== by 0x4F89F32: g_signal_emit (gsignal.c:3622)
==7198== by 0x49D1284: UnknownInlinedFun (gtkbutton.c:1604)
==7198== by 0x49D1284: gtk_button_button_release (gtkbutton.c:1596)
==7198== by 0x4A973ED: _gtk_marshal_BOOLEAN__BOXED (gtkmarshalers.c:84)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F99314: signal_emit_unlocked_R.isra.0 (gsignal.c:3851)
==7198== by 0x4F897E1: g_signal_emit_valist (gsignal.c:3575)
==7198== by 0x4F89F32: g_signal_emit (gsignal.c:3622)
==7198== by 0x4BE2BF3: gtk_widget_event_internal.lto_priv.0 (gtkwidget.c:5017)
==7198== by 0x4A99FB2: gtk_propagate_event (gtkmain.c:2503)
==7198== by 0x4A9BC7A: UnknownInlinedFun (gtkmain.c:1698)
==7198== by 0x4A9BC7A: gtk_main_do_event (gtkmain.c:1503)
==7198== Address 0x15723d80 is 16 bytes inside a block of size 36 free'd
==7198== at 0x4845B2C: free (vg_replace_malloc.c:985)
==7198== by 0x4E2CD21: _XEventsQueued (xcb_io.c:442)
==7198== by 0x4E1FC20: XPending (Pending.c:55)
==7198== by 0x48D66AE: UnknownInlinedFun (gdkevents-x11.c:159)
==7198== by 0x48D66AE: gdk_event_check.lto_priv.0 (gdkevents-x11.c:2400)
==7198== by 0x5014A69: g_main_context_check (gmain.c:4093)
==7198== by 0x507251F: g_main_context_iterate.isra.0 (gmain.c:4273)
==7198== by 0x5011B2B: g_main_context_pending (gmain.c:4307)
==7198== by 0x51537B: GTK2INT$_$TGTK2WIDGETSET_$__$$_APPPROCESSMESSAGES (gtk2widgetset.inc:2500)
==7198== by 0x497EAF: FORMS$_$TAPPLICATION_$__$$_PROCESSMESSAGES (application.inc:452)
==7198== by 0x6EAE05: GTK2PROC_$$_WAITFORCLIPBOARDANSWER$PCLIPBOARDEVENTDATA$$BOOLEAN (gtk2proc.inc:7597)
==7198== by 0x6EB10C: GTK2PROC_$$_REQUESTSELECTIONDATA$PGTKWIDGET$TCLIPBOARDTYPE$QWORD$$TGTKSELECTIONDATA (gtk2proc.inc:7692)
==7198== by 0x5206D0: GTK2INT$_$TGTK2WIDGETSET_$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN_$$_ISFORMATSUPPORTED$crc60BF9FB4 (gtk2winapi.inc:301)
==7198== by 0x520644: GTK2INT$_$TGTK2WIDGETSET_$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN_$$_CHECKATOMFORMAT$crcDE325E89 (gtk2winapi.inc:341)
==7198== by 0x52026A: GTK2INT$_$TGTK2WIDGETSET_$__$$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN (gtk2winapi.inc:364)
==7198== by 0x5960BF: LCLINTF_$$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN (lclintf.inc:71)
==7198== by 0x818DE7: CLIPBRD$_$TCLIPBOARD_$__$$_GETFORMAT$QWORD$TSTREAM$$BOOLEAN (clipbrd.inc:305)
==7198== by 0x819B70: CLIPBRD$_$TCLIPBOARD_$__$$_GETASTEXT$$ANSISTRING (clipbrd.inc:466)
==7198== by 0x1ACE4BA: HEAPTRCVIEW$_$THEAPTRCVIEWFORM_$__$$_DOUPDATELEAKS$BOOLEAN (heaptrcview.pas:322)
==7198== by 0x1ACD339: HEAPTRCVIEW$_$THEAPTRCVIEWFORM_$__$$_BTNCLIPBOARDCLICK$TOBJECT (heaptrcview.pas:134)
==7198== by 0x5E1D01: CONTROLS$_$TCONTROL_$__$$_CLICK (control.inc:2974)
==7198== by 0x64D8E2: STDCTRLS$_$TBUTTONCONTROL_$__$$_CLICK (buttoncontrol.inc:55)
==7198== by 0x64E3D4: STDCTRLS$_$TCUSTOMBUTTON_$__$$_CLICK (buttons.inc:169)
==7198== by 0x64D74D: STDCTRLS$_$TBUTTONCONTROL_$__$$_WMDEFAULTCLICKED$TLMESSAGE (buttoncontrol.inc:21)
==7198== by 0x433969: SYSTEM$_$TOBJECT_$__$$_DISPATCH$formal (in /home/m/laz/lazgit/lazarus)
==7198== by 0x5CD3B0: CONTROLS$_$TWINCONTROL_$__$$_WNDPROC$TLMESSAGE (wincontrol.inc:5471)
==7198== by 0x864DB4: LCLMESSAGEGLUE_$$_DELIVERMESSAGE$TOBJECT$formal$$INT64 (lclmessageglue.pas:114)
==7198== by 0x6E25FA: GTK2PROC_$$_DELIVERMESSAGE$POINTER$formal$$INT64 (gtk2proc.inc:3796)
==7198== by 0x87630C: GTK2WSSTDCTRLS_$$_GTK2WSBUTTON_CLICKED$PGTKWIDGET$PWIDGETINFO$$BOOLEAN32 (gtk2wsstdctrls.pp:2471)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F98E15: signal_emit_unlocked_R.isra.0 (gsignal.c:3812)
==7198== by 0x4F89CBC: g_signal_emit_valist (gsignal.c:3565)
==7198== by 0x4F89F32: g_signal_emit (gsignal.c:3622)
==7198== by 0x49D05A8: UnknownInlinedFun (gtkbutton.c:1712)
==7198== by 0x49D05A8: gtk_real_button_released.lto_priv.0 (gtkbutton.c:1702)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F98F10: signal_emit_unlocked_R.isra.0 (gsignal.c:3742)
==7198== Block was alloc'd at
==7198== at 0x484280F: malloc (vg_replace_malloc.c:442)
==7198== by 0x58569B7: UnknownInlinedFun (xcb_in.c:259)
==7198== by 0x58569B7: _xcb_in_read (xcb_in.c:1030)
==7198== by 0x5857777: poll_for_next_event.part.0 (xcb_in.c:713)
==7198== by 0x4E28DA5: poll_for_event (xcb_io.c:263)
==7198== by 0x4E28F30: poll_for_response (xcb_io.c:310)
==7198== by 0x4E2CD29: _XEventsQueued (xcb_io.c:441)
==7198== by 0x4E1FC20: XPending (Pending.c:55)
==7198== by 0x48D66AE: UnknownInlinedFun (gdkevents-x11.c:159)
==7198== by 0x48D66AE: gdk_event_check.lto_priv.0 (gdkevents-x11.c:2400)
==7198== by 0x5014A69: g_main_context_check (gmain.c:4093)
==7198== by 0x507251F: g_main_context_iterate.isra.0 (gmain.c:4273)
==7198== by 0x5011B2B: g_main_context_pending (gmain.c:4307)
==7198== by 0x51537B: GTK2INT$_$TGTK2WIDGETSET_$__$$_APPPROCESSMESSAGES (gtk2widgetset.inc:2500)
==7198== by 0x497EAF: FORMS$_$TAPPLICATION_$__$$_PROCESSMESSAGES (application.inc:452)
==7198== by 0x6EAE05: GTK2PROC_$$_WAITFORCLIPBOARDANSWER$PCLIPBOARDEVENTDATA$$BOOLEAN (gtk2proc.inc:7597)
==7198== by 0x6EB10C: GTK2PROC_$$_REQUESTSELECTIONDATA$PGTKWIDGET$TCLIPBOARDTYPE$QWORD$$TGTKSELECTIONDATA (gtk2proc.inc:7692)
==7198== by 0x5206D0: GTK2INT$_$TGTK2WIDGETSET_$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN_$$_ISFORMATSUPPORTED$crc60BF9FB4 (gtk2winapi.inc:301)
==7198== by 0x520644: GTK2INT$_$TGTK2WIDGETSET_$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN_$$_CHECKATOMFORMAT$crcDE325E89 (gtk2winapi.inc:341)
==7198== by 0x52026A: GTK2INT$_$TGTK2WIDGETSET_$__$$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN (gtk2winapi.inc:364)
==7198== by 0x5960BF: LCLINTF_$$_CLIPBOARDGETDATA$TCLIPBOARDTYPE$QWORD$TSTREAM$$BOOLEAN (lclintf.inc:71)
==7198== by 0x818DE7: CLIPBRD$_$TCLIPBOARD_$__$$_GETFORMAT$QWORD$TSTREAM$$BOOLEAN (clipbrd.inc:305)
==7198== by 0x819B70: CLIPBRD$_$TCLIPBOARD_$__$$_GETASTEXT$$ANSISTRING (clipbrd.inc:466)
==7198== by 0x1ACE4BA: HEAPTRCVIEW$_$THEAPTRCVIEWFORM_$__$$_DOUPDATELEAKS$BOOLEAN (heaptrcview.pas:322)
==7198== by 0x1ACD339: HEAPTRCVIEW$_$THEAPTRCVIEWFORM_$__$$_BTNCLIPBOARDCLICK$TOBJECT (heaptrcview.pas:134)
==7198== by 0x5E1D01: CONTROLS$_$TCONTROL_$__$$_CLICK (control.inc:2974)
==7198== by 0x64D8E2: STDCTRLS$_$TBUTTONCONTROL_$__$$_CLICK (buttoncontrol.inc:55)
==7198== by 0x64E3D4: STDCTRLS$_$TCUSTOMBUTTON_$__$$_CLICK (buttons.inc:169)
==7198== by 0x64D74D: STDCTRLS$_$TBUTTONCONTROL_$__$$_WMDEFAULTCLICKED$TLMESSAGE (buttoncontrol.inc:21)
==7198== by 0x433969: SYSTEM$_$TOBJECT_$__$$_DISPATCH$formal (in /home/m/laz/lazgit/lazarus)
==7198== by 0x5CD3B0: CONTROLS$_$TWINCONTROL_$__$$_WNDPROC$TLMESSAGE (wincontrol.inc:5471)
==7198== by 0x864DB4: LCLMESSAGEGLUE_$$_DELIVERMESSAGE$TOBJECT$formal$$INT64 (lclmessageglue.pas:114)
==7198== by 0x6E25FA: GTK2PROC_$$_DELIVERMESSAGE$POINTER$formal$$INT64 (gtk2proc.inc:3796)
==7198== by 0x87630C: GTK2WSSTDCTRLS_$$_GTK2WSBUTTON_CLICKED$PGTKWIDGET$PWIDGETINFO$$BOOLEAN32 (gtk2wsstdctrls.pp:2471)
==7198== by 0x4F6A4E9: g_closure_invoke (gclosure.c:832)
==7198== by 0x4F98E15: signal_emit_unlocked_R.isra.0 (gsignal.c:3812)
==7198== by 0x4F89CBC: g_signal_emit_valist (gsignal.c:3565)
==7198==