Strange buddy move behavior. Падение при некоторых перемещениях контакта между группами.
Original issue 85 created by plaque_fcc on 2011-11-04T01:03:55.000Z:
(00:55:07) mrim-prpl: Moving 'mrim_move_buddy' to group 'support@corp.mail.ru'
Program received signal SIGSEGV, Segmentation fault. 0xb5fdecf8 in mrim_move_buddy () from /usr/lib/purple-2/mrim-underbush.so
Buddy group: «Buddies»; Target group: «Abs-Agents»; Buddy ID: «support@corp.mail.ru».
Branch: master
$ pidgin --version Pidgin 2.10.0 (libpurple 2.10.0)
$ cat config.h | grep -oE 'git[0-9]+' git20111104
Comments (5)
-
reporter -
reporter Comment 4 originally posted by plaque_fcc on 2012-02-02T10:55:18.000Z:
cl.c@8fb4b0b043c0, line 297:
GList *g = g_list_first(g_hash_table_get_values(mrim->groups));
В список групп каким-то образом попадают элементы с .name != NULL и непригодные для g_strcmp0.
Идеи есть?
-
reporter Comment 6 originally posted by plaque_fcc on 2012-04-09T16:52:04.000Z:
(20:24:45) mrim-prpl: [mrim_move_buddy] Moving 'foo@list.ru' to group 'Abs-Etc' (20:24:45) mrim-prpl: [get_mrim_group_by_name] name = 'Abs-Etc' (20:24:45) mrim-prpl: [get_mrim_group_by_name] group info: (id, flags) = (2173692744,2179147912)
Program received signal SIGSEGV, Segmentation fault. 0x00d0eb85 in vfprintf () from /lib/i386-linux-gnu/libc.so.6 (gdb) bt
- 0 0x00d0eb85 in vfprintf () from /lib/i386-linux-gnu/libc.so.6
- 1 0x00db3701 in vasprintf_chk () from /lib/i386-linux-gnu/libc.so.6
- 2 0x00b2db66 in g_vasprintf () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 3 0x00b06e53 in g_strdup_vprintf () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 4 0x00bec801 in ?? () from /usr/lib/libpurple.so.0
- 5 0x00beca60 in purple_debug_info () from /usr/lib/libpurple.so.0
- 6 0x02104fad in get_mrim_group_by_name (mrim=0x81857468, name=0x8095b3c8 "Abs-Etc") at cl.c:311
- 7 0x02105def in mrim_move_buddy (gc=0x81838750, who=0x8095c430 "foo@list.ru", old_group=0x80696238 "Abs-Dev", new_group=0x8095b3c8 "Abs-Etc") at cl.c:523
- 8 0x00c207ff in serv_move_buddy () from /usr/lib/libpurple.so.0
Проблема: первый же результат в списке mrim->groups, судя по всему, какой-то мусорный или является не MrimGroup-структурой.
При этом свёрнутая группа не считает этого собеседника состоящим в ней и пребывающим в сети: ИмяГруппы (5/150), когда в группе в сети отображается 6 контактов. Полагаю, это связано.
-
reporter Comment 7 originally posted by plaque_fcc on 2012-04-09T17:40:29.000Z:
(21:14:39) idle: Setting foo@mail.ru unidle (21:14:39) mrim-prpl: [mrim_close]
Program received signal SIGSEGV, Segmentation fault. 0x00d3ec6e in free () from /lib/i386-linux-gnu/libc.so.6 (gdb) bt
- 0 0x00d3ec6e in free () from /lib/i386-linux-gnu/libc.so.6
- 1 0x00aeec1b in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 2 0x00aeeef6 in g_free () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 3 0x02104dc6 in free_mrim_group (group=0x8098c088) at cl.c:282
- 4 0x00ad545c in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 5 0x00ad630b in g_hash_table_remove_all () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 6 0x00ad63a6 in g_hash_table_destroy () from /lib/i386-linux-gnu/libglib-2.0.so.0
- 7 0x020fecd0 in mrim_close (gc=0x81127bf0) at mrim.c:141
- 8 0x00be425d in _purple_connection_destroy () from /usr/lib/libpurple.so.0
В mrim.c:141 g_hash_table_destroy(mrim->groups); Таким образом, в mrim->groups есть неожиданное значение.
-
- changed status to duplicate
Duplicate of #122.
- Log in to comment
Comment 1 originally posted by plaque_fcc on 2011-11-06T12:06:13.000Z:
(16:04:27) mrim-prpl: Moving 'mrim_move_buddy' to group 'support@corp.mail.ru'
Program received signal SIGSEGV, Segmentation fault. 0xb5532cf8 in mrim_move_buddy () from /usr/lib/purple-2/mrim-underbush.so (gdb) bt
Это точно так. До сих пор.