Opened 11 years ago

Closed 11 years ago

Last modified 8 years ago

#4808 closed defect (wontfix)

Opening preferences crashes Pidgin in strlen while setting font button name, if Gtk+ 2.6.0-rc1 runtime is installed

Reported by: jeff Owned by: jeff
Milestone: Component: unclassified
Version: Keywords:
Cc:

Description (last modified by datallah)

I am running Pidgin on Windows built using the steps in BuildingWinPidgin, using the latest source from Monotone. e1213913e6feb23196743f9c0c2b33dc36e4aab3 in im.pidgin.pidgin.

Steps to reproduce:

  1. Run Pidgin.
  2. Tools -> Preferences

Results: Pidgin crashes in strlen(). Looks like it has something to do with error messages. Maybe a corrupted error message for some reason?

Full backtrace:

#0  0x77c478c0 in strlen () from /cygdrive/c/WINDOWS/system32/msvcrt.dll
No symbol table info available.
#1  0x00b1b2c4 in libglib-2!g_win32_error_message ()
No symbol table info available.
#2  0x00b1bee8 in libglib-2!g_win32_error_message ()
No symbol table info available.
#3  0x00b1457b in libglib-2!g_vasprintf ()
No symbol table info available.
#4  0x00b0367e in libglib-2!g_strdup_printf ()
No symbol table info available.
#5  0x00d950f6 in libgtk-win32-2!gtk_font_button_set_use_font ()
No symbol table info available.
#6  0x00d95389 in libgtk-win32-2!gtk_font_button_set_font_name ()
No symbol table info available.
#7  0x00b7606e in libgobject-2!g_object_newv ()
No symbol table info available.
#8  0x00b76589 in libgobject-2!g_object_new_valist ()
No symbol table info available.
#9  0x00b76706 in libgobject-2!g_object_new ()
No symbol table info available.
#10 0x00d94224 in libgtk-win32-2!gtk_font_button_new_with_font ()
No symbol table info available.
#11 0x64a9976e in conv_page () at gtkprefs.c:979
        ret = (GtkWidget *) 0x239d088
        vbox = (GtkWidget *) 0x23a7958
        toolbar = (GtkWidget *) 0x21f9f60
        iconpref1 = (GtkWidget *) 0x64ad6ecc
        iconpref2 = (GtkWidget *) 0x64ad70b0
        fontpref = (GtkWidget *) 0x23a77d8
        imhtml = (GtkWidget *) 0x2553080
        frame = (GtkWidget *) 0x64ad6ecc
        hbox = (GtkWidget *) 0x64ad70b0
        font_button = (GtkWidget *) 0x64ad6ecc
        font_name = 0x121fff0 ""
#12 0x64a9b189 in prefs_notebook_init () at gtkprefs.c:2034
        ret = (GtkWidget *) 0x2553080
        vbox = (GtkWidget *) 0x23964d0
        vbox2 = (GtkWidget *) 0x2397c48
        label = (GtkWidget *) 0x64ad6ecc
        sg = (GtkSizeGroup *) 0x2553570
        names = (GList *) 0x64ad70b0
        ret = (GtkWidget *) 0x2553080
        vbox = (GtkWidget *) 0x23964d0
        vbox2 = (GtkWidget *) 0x2397c48
        sg = (GtkSizeGroup *) 0x2553570
        ret = (GtkWidget *) 0x3d7a20
        view = (GtkWidget *) 0x3de728
        rend = (GtkCellRenderer *) 0x229b754
        sel = (GtkTreeSelection *) 0xffffffff
        rowref = (GtkTreeRowReference *) 0x7c9106f0
        label = (GtkWidget *) 0x3d9600
        te = {{target = 0x2553020 "\001", flags = 39137312, info = 2288040}, {
    target = 0xb82e25 "\203Ä\020\213Eì\215eô[^_]A¡p1º", flags = 4056840,
    info = 15748032}, {target = 0x2321128 "Z\002", flags = 36835624,
    info = 19902888}}
        ret = (GtkWidget *) 0x2553080
        vbox = (GtkWidget *) 0x23964d0
        vbox2 = (GtkWidget *) 0x2397c48
        sg = (GtkSizeGroup *) 0x2553570
        ret = (GtkWidget *) 0x3d7a20
        view = (GtkWidget *) 0x3de728
        rend = (GtkCellRenderer *) 0x229b754
        sel = (GtkTreeSelection *) 0xffffffff
        rowref = (GtkTreeRowReference *) 0x7c9106f0
        label = (GtkWidget *) 0x3d9600
        te = {{target = 0x2553020 "\001", flags = 39137312, info = 2288040}, {
    target = 0xb82e25 "\203Ä\020\213Eì\215eô[^_]A¡p1º", flags = 4056840,
    info = 15748032}, {target = 0x2321128 "Z\002", flags = 36835624,
    info = 19902888}}
        ret = (GtkWidget *) 0x2553080
        vbox = (GtkWidget *) 0x23964d0
        vbox2 = (GtkWidget *) 0x2397c48
        sg = (GtkSizeGroup *) 0x2553570
        ret = (GtkWidget *) 0x3d7a20
        view = (GtkWidget *) 0x3de728
        rend = (GtkCellRenderer *) 0x229b754
        sel = (GtkTreeSelection *) 0xffffffff
        rowref = (GtkTreeRowReference *) 0x7c9106f0
        label = (GtkWidget *) 0x3d9600
        te = {{target = 0x2553020 "\001", flags = 39137312, info = 2288040}, {
    target = 0xb82e25 "\203Ä\020\213Eì\215eô[^_]A¡p1º", flags = 4056840,
    info = 15748032}, {target = 0x2321128 "Z\002", flags = 36835624,
    info = 19902888}}
        ret = (GtkWidget *) 0x3d7a20
        view = (GtkWidget *) 0x3de728
        rend = (GtkCellRenderer *) 0x229b754
        sel = (GtkTreeSelection *) 0xffffffff
        rowref = (GtkTreeRowReference *) 0x7c9106f0
        label = (GtkWidget *) 0x3d9600
        te = {{target = 0x2553020 "\001", flags = 39137312, info = 2288040}, {
    target = 0xb82e25 "\203Ä\020\213Eì\215eô[^_]A¡p1º", flags = 4056840,
    info = 15748032}, {target = 0x2321128 "Z\002", flags = 36835624,
    info = 19902888}}
        ret = (GtkWidget *) 0x1
        vbox = (GtkWidget *) 0x0
        hbox = (GtkWidget *) 0x1
        table = (GtkWidget *) 0xaf25a4
        auto_ip_checkbox = (GtkWidget *) 0x22e8b8
        proxy_warning = (GtkWidget *) 0x2550d68
        browser_warning = (GtkWidget *) 0x214
        proxy_button = (GtkWidget *) 0x40000060
        browser_button = (GtkWidget *) 0x3d0000
        sg = (GtkSizeGroup *) 0x77c2c756
        proxy_info = (PurpleProxyInfo *) 0xc
        ret = (GtkWidget *) 0x3d7a20
        view = (GtkWidget *) 0x3de728
        rend = (GtkCellRenderer *) 0x229b754
        sel = (GtkTreeSelection *) 0xffffffff
        rowref = (GtkTreeRowReference *) 0x7c9106f0
        label = (GtkWidget *) 0x3d9600
        te = {{target = 0x2553020 "\001", flags = 39137312, info = 2288040}, {
    target = 0xb82e25 "\203Ä\020\213Eì\215eô[^_]A¡p1º", flags = 4056840,
    info = 15748032}, {target = 0x2321128 "Z\002", flags = 36835624,
    info = 19902888}}
        ret = (GtkWidget *) 0x1
        vbox = (GtkWidget *) 0x0
        hbox = (GtkWidget *) 0x1
        table = (GtkWidget *) 0xaf25a4
        auto_ip_checkbox = (GtkWidget *) 0x22e8b8
        proxy_warning = (GtkWidget *) 0x2550d68
        browser_warning = (GtkWidget *) 0x214
        proxy_button = (GtkWidget *) 0x40000060
        browser_button = (GtkWidget *) 0x3d0000
        sg = (GtkSizeGroup *) 0x77c2c756
        proxy_info = (PurpleProxyInfo *) 0xc
        ret = (GtkWidget *) 0x1
        vbox = (GtkWidget *) 0x0
        hbox = (GtkWidget *) 0x1
        table = (GtkWidget *) 0xaf25a4
        auto_ip_checkbox = (GtkWidget *) 0x22e8b8
        proxy_warning = (GtkWidget *) 0x2550d68
        browser_warning = (GtkWidget *) 0x214
        proxy_button = (GtkWidget *) 0x40000060
        browser_button = (GtkWidget *) 0x3d0000
        sg = (GtkSizeGroup *) 0x77c2c756
        proxy_info = (PurpleProxyInfo *) 0xc
#13 0x64a9d32c in pidgin_prefs_show () at gtkprefs.c:2082
        vbox = (GtkWidget *) 0x64ad6d35
        notebook = (GtkWidget *) 0x64ac3e80
        button = (GtkWidget *) 0x121fff0
#14 0x00dbf79d in libgtk-win32-2!gtk_item_factory_get_type ()
No symbol table info available.
#15 0x00b73556 in libgobject-2!g_closure_invoke ()
No symbol table info available.
#16 0x00b856d0 in libgobject-2!g_signal_has_handler_pending ()
No symbol table info available.
#17 0x00b864ba in libgobject-2!g_signal_emit_valist ()
No symbol table info available.
#18 0x00b866ca in libgobject-2!g_signal_emit ()
No symbol table info available.
#19 0x00ee72e0 in libgtk-win32-2!gtk_widget_activate ()
No symbol table info available.
#20 0x00de9f42 in libgtk-win32-2!gtk_menu_shell_activate_item ()
No symbol table info available.
#21 0x00dea356 in libgtk-win32-2!gtk_menu_shell_activate_item ()
No symbol table info available.
#22 0x00dd9640 in libgtk-win32-2!gtk_marshal_VOID__UINT_STRING ()
No symbol table info available.
#23 0x00b73556 in libgobject-2!g_closure_invoke ()
No symbol table info available.
#24 0x00b85305 in libgobject-2!g_signal_has_handler_pending ()
No symbol table info available.
#25 0x00b86227 in libgobject-2!g_signal_emit_valist ()
No symbol table info available.
#26 0x00b866ca in libgobject-2!g_signal_emit ()
No symbol table info available.
#27 0x00ee7477 in libgtk-win32-2!gtk_widget_activate ()
No symbol table info available.
#28 0x00dd7b9c in libgtk-win32-2!gtk_propagate_event ()
No symbol table info available.
#29 0x00dd7ec9 in libgtk-win32-2!gtk_main_do_event ()
No symbol table info available.
#30 0x00bde4d7 in libgdk-win32-2!gdk_event_get_graphics_expose ()
No symbol table info available.
#31 0x00aea50b in libglib-2!g_source_remove_poll ()
No symbol table info available.
#32 0x00aec5af in libglib-2!g_main_context_acquire ()
No symbol table info available.
#33 0x00aec779 in libglib-2!g_main_loop_run ()
No symbol table info available.
#34 0x00dd7248 in libgtk-win32-2!gtk_main ()
No symbol table info available.
#35 0x64a8d741 in pidgin_main (hint=0x400000, argc=1, argv=0x3d2450)
    at gtkmain.c:886
        opt_help = 0
        opt_login = 0
        opt_nologin = 0
        opt_version = 0
        opt_si = 1
        opt_config_dir_arg = 0x0
        opt_login_arg = 0x0
        opt_session_arg = 0x0
        search_path = 0x0
        accounts = (GList *) 0x0
        opt = 0
        gui_check = 0
        debug_enabled = 0
        migration_failed = 0
        active_accounts = (GList *) 0x0
        long_options = {{name = 0x64ad5254 "config", has_arg = 1, flag = 0x0,
    val = 99}, {name = 0x64ad525b "debug", has_arg = 0, flag = 0x0,
    val = 100}, {name = 0x64ad5261 "help", has_arg = 0, flag = 0x0,
    val = 104}, {name = 0x64ad5266 "login", has_arg = 2, flag = 0x0,
    val = 108}, {name = 0x64ad526c "multiple", has_arg = 0, flag = 0x0,
    val = 109}, {name = 0x64ad5275 "nologin", has_arg = 0, flag = 0x0,
    val = 110}, {name = 0x64ad527d "session", has_arg = 1, flag = 0x0,
    val = 115}, {name = 0x64ad503e "version", has_arg = 0, flag = 0x0,
    val = 118}, {name = 0x64ad5285 "display", has_arg = 1, flag = 0x0,
    val = 68}, {name = 0x64ad528d "sync", has_arg = 0, flag = 0x0, val = 83},
  {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
        hint = (HINSTANCE) 0x0
#36 0x00402182 in WinMain (hInstance=0x400000, hPrevInstance=0x0,
    lpszCmdLine=0x241f15 "", nCmdShow=10) at win32/winpidgin.c:658
        errbuf = "dà\226|\b\006=\000Oà\000|\000\000=\0004ü\"\000¬5$\000Ey\"\000\
030î\220|Ej\222|ÿÿÿÿ_j\222|-h\222|\000\000$\000`\000\000@m\005\221|(9$\000\000\0
00\000\000A\000\000\000\000\000$\000\000\200Aw\000\000\001\001ìü\"\000Hy\"\000ÿ8
\221|Ä5$\000\000\000\234\000\\y\"\000°\201\222|Ä5$\000\000\000\000\0005\203\222|
¬5$\000Iy\"\000]A\222|mA\222|(9$\000B\000\000\000\000\000\000\000\2008$\000\230y
\"\000"5$\000(9$\000\202\000\000\000\000\000\000\000\2008$\000\000\000\000\000\0
00\020\000\000\020\000\000\000\000\000$\000\000_\"\000"...
        pidgin_dir = "C:\\cygwin\\home\\_\\pidgin\\win32-install-dir\000exchndl.
dll\000\001\001Aû\"\000\230²\221|oü\"\000\030î\220|oà\226|ÿÿÿÿOà\226|D¥\224|\000
\000$\000a\000\000P_j\222|\000\000$\000(9$\000`\000\000@\000\000\000\000\000\000
\000\000\000\000\001\000\034\020ü\177", '\0' <repeats 16 times>, "\230\001=\000x
\001$\000($=\000 \000\000\000 \002\000\000x\001$\000\001\000\000\000\230\001=\00
0x\001$\000\0222\221\000\000\000\000\000\2102\221|\000\000\000\000\000\000---Typ
e <return> to continue, or q <return> to quit---
=\000\224ú\"\0000y"...
        exe_name = "pidgin.exe\000\000Dj\222|\000\000$\000_j\222| 9$\000\000\000
$\000(9$\000\000\000\000\000féB~\000\000\000\000Aú\"\000@\000\000\001(9$\000\000
\000\000\000(ú\"\000\210u\201|\000\000\000\000\030î\220|PE\221|ÿÿÿÿ\000\000\000\
000>\027\222|0y\"\000\000\000$\000\000\000\000\000\210\027\222|dy\"\000x\001$\00
0\000\000\000\000 9$\000 \000\000\000x\001$\000\000\000$\000\001\000\000\000x\00
1$\000¬5$\000\204\002\000\000\000\000\000\0000", '\0' <repeats 21 times>, "$\000
_j\222|°û\"\000éI\226|\000\000$\000\000\000\000\000 9$\000\000\000$"...
        hmod = (HMODULE) 0x0
        tmp = 0x12e66b8 "\220Ñcd\001"
        pidgin_argc = 1
        pidgin_argv = (char **) 0x3d2450
        hInstance = (struct HINSTANCE__ *) 0x0
        lpszCmdLine = 0x241f15 ""
#37 0x004025b8 in main ()
No symbol table info available.
(gdb)

Attachments (1)

pidgin.RPT (16.3 KB) - added by jeff 11 years ago.
Dr. Watson crash file

Download all attachments as: .zip

Change History (11)

comment:1 Changed 11 years ago by jeff

I see the same issue on Pidgin 2.3.1. Notes from #pidgin:

<deryni> jeff2: That line of gtkprefs.c hasn't changed in months.
<stu|laptop> jeff2: that backtrace also stinks of theme issues, and smells heavily of win32

I haven't done anything with themes.

Changed 11 years ago by jeff

Dr. Watson crash file

comment:2 Changed 11 years ago by jeff

Before the crash, the debug log has: GLib: g_ascii_strcasecmp: assertion 's2 != NULL' failed

comment:3 Changed 11 years ago by jeff

  • Resolution set to worksforme
  • Status changed from new to closed

I did this, which I thought may have effected this problem:

Install Pidgin then install TiEmu? from http://www.ticalc.org/archives/files/fileinfo/387/38770.html . TiEmu? wants Gtk+ 2.6.0-rc1 and it says the currently installed version is too old. This is probably a bug in TiEmu?'s installer, since Pidgin installs Gtk+ 2.12.1 and 12 >= 6. Go through the TiEmu? installer, and at the end, check the box to Download and install Gtk+. It will install version 2.6.0-rc1.

I tried to reproduce this by reinstalling Pidgin, then reinstalling TiEmu? but was unsuccessful - no crashes occurred (Pidgin ran fine with the 2.6.0-rc1 Gtk+ runtime that TiEmu? requires). Closing as worksforme, but I'll reopen this if I find out more.

comment:4 Changed 11 years ago by jeff

  • priority changed from blocker to minor
  • Resolution worksforme deleted
  • Status changed from closed to reopened
  • Summary changed from Opening preferences crashes Pidgin (Monotone) in strlen to Opening preferences crashes Pidgin in strlen while setting font button name, if Gtk+ 2.6.0-rc1 runtime is installed

Reopening because a friend with a fresh install was able to reproduce this preferences crash, by installing Pidgin and then TiEmu?. Downgrading to minor since this won't affect all users.

comment:5 Changed 11 years ago by datallah

  • Description modified (diff)

GTK+ 2.6.0 is really old and has lots of bugs that are fixed in newer versions. The oldest version that anything should reasonably be using is 2.6.10.

This crash may be fixed in 4c2c343355f23e33c5b251b3d61f07af3fd8ac8b, but if not, there probably isn't much that we can do about it.

comment:6 Changed 11 years ago by jeff

  • Owner changed from lschiere to jeff
  • Status changed from reopened to new

Need to report this to TiEmu? team.

comment:7 Changed 11 years ago by jeff

  • Resolution set to wontfix
  • Status changed from new to closed

Submitted to TiEmu? at http://sourceforge.net/tracker/index.php?func=detail&aid=1891382&group_id=23169&atid=377680 , closing as WONTFIX for now (I think it is reasonable to not support older versions of Gtk+.)

comment:8 follow-up: Changed 11 years ago by ys m

I use Pidgin 2.3.1 with Gtk+ runtime 2.6.10 (now Gtk+ 2.6.10 and Glib 2.8.0) over a old machine. I'm insegure but I think remember this crash begin with Pidgin 2.1.0, and latest bugfree was 2.0.2.

comment:9 in reply to: ↑ 8 Changed 11 years ago by ys m

Sure, latest bugfree was Pidgin 2.0.2, and latest old w32 compatible (w98). Same code report (over gtkprefs.c).

comment:10 Changed 11 years ago by ys m

For test this crash with Gtk+ runtime 2.6.10 Rev A http://sourceforge.net/project/showfiles.php?group_id=235&package_id=119698&release_id=355939 A possibility is make some special pkg with Pidgin 2.0.2 and Gtk+ 2.6.10, for older win32 systems.

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!