![]() I observed the following nautilus crash below after trying to access an SMB share and mistyping my password (it also happens if mounting the SMB share fails for other reasons after entering a password). The crash happens when the password entry window pops up the second time, in this code path, at the 7th element of priv->user_widgets: 458 pw_dialog_anonymous_toggled (GtkWidget *widget, 459 GtkMountOperation *operation) 460 { ... 472 for (l = priv->user_widgets; l != NULL; l = l->next) 473 { 474 gtk_widget_set_sensitive (GTK_WIDGET (l->data), !priv->anonymous); 475 } The broken element had l->data = 0xaaaaaaaaaaaa, which means the pointer had been freed. The broken list entries were at the of the list because when gtk_mount_operation_ask_password_do_gtk() constucts the pop-up the 2nd time, it prepends new widgets: gtk_mount_operation_ask_password_do_gtk() table_add_entry operation->priv->user_widgets = g_list_prepend (operation->priv->user_widgets, entry); The problem is that in pw_dialog_got_response(), the widget is destroyed, which also destroys all child widgets, but the priv->user_widgets list is neither freed nor set to NULL. Fix it. |
||
---|---|---|
.gitlab-ci | ||
build-aux | ||
demos | ||
docs | ||
examples | ||
gdk | ||
gtk | ||
libgail-util | ||
m4macros | ||
modules | ||
po | ||
po-properties | ||
subprojects | ||
tests | ||
testsuite | ||
.gitlab-ci.yml | ||
CONTRIBUTING.md | ||
COPYING | ||
gail-3.0.pc.in | ||
gdk-3.0.pc.in | ||
gtk-zip.sh.in | ||
gtk.supp | ||
gtk+-3.0.pc.in | ||
gtk+-unix-print-3.0.pc.in | ||
gtk+.doap | ||
INSTALL.md | ||
make-pot | ||
meson_options.txt | ||
meson.build | ||
NEWS | ||
README.md | ||
README.win32.md |
General Information
GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites.
GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
The official download locations are:
The official web site is:
Installation
See the file INSTALL.md
How to report bugs
Bugs should be reported to the GTK issue tracker. You will need to create an account for yourself.
In the bug report please include:
-
Information about your system. For instance:
- What operating system and version
- For Linux, what version of the C library
And anything else you think is relevant.
-
How to reproduce the bug.
If you can reproduce it with one of the test programs that are built in the tests/ subdirectory, that will be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded.
-
If the bug was a crash, the exact text that was printed out when the crash occurred.
-
Further information such as stack traces may be useful, but is not necessary.
Bug fixes and improvements
Changes should be submitted as merge request to the GTK project. If a merge request fixes an issue, the description should mention the issue number.
Release notes
Release notes for releases of GTK 3.x are part of the migration guide in the GTK documentation. See