Package: purple-discord
Version: 0.9.2020.03.10.git.4e71974-1
Severity: important
Hello,
I have been using purple-discord permanently in the past couple weeks,
and I have been hit by a crash several times:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f94a4dd655b in __GI_abort () at abort.c:79
#2 0x000055d5cf6bbe6c in sighandler (sig=<optimized out>) at
././pidgin/gtkmain.c:179
#3 sighandler (sig=<optimized out>) at ././pidgin/gtkmain.c:162
#4 0x00007f94a4dec7e0 in <signal handler called> () at
/lib/x86_64-linux-gnu/libc.so.6
#5 0x00007f949fb2a4a5 in ssl_nss_read (gsc=0x55d5d0d3ae30,
data=0x55d5d0d3ab40, len=1) at ././libpurple/plugins/ssl/ssl-nss.c:532
#6 0x00007f949faf8a33 in discord_socket_got_data (userdata=0x55d5d0d3aad0,
conn=0x55d5d0d3ae30, cond=<optimized out>) at libdiscord.c:4501
#7 0x000055d5cf6a31e2 in pidgin_io_invoke (source=<optimized out>,
condition=<optimized out>, data=0x55d5d148e6f0) at ././pidgin/gtkeventloop.c:73
#8 0x00007f94a52704de in g_main_dispatch (context=0x55d5d066a750) at
../../../glib/gmain.c:3309
#9 g_main_context_dispatch (context=context@entry=0x55d5d066a750) at
../../../glib/gmain.c:3974
#10 0x00007f94a5270890 in g_main_context_iterate (context=0x55d5d066a750,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
../../../glib/gmain.c:4047
#11 0x00007f94a5270b63 in g_main_loop_run (loop=0x55d5d0d3b0a0) at
../../../glib/gmain.c:4241
#12 0x00007f94a574c12a in IA__gtk_main () at ../../../../gtk/gtkmain.c:1270
#13 0x000055d5cf668970 in main (argc=<optimized out>, argv=<optimized out>) at
././pidgin/gtkmain.c:939
(gdb) frame 5
#5 0x00007f949fb2a4a5 in ssl_nss_read (gsc=0x55d5d0d3ae30,
data=0x55d5d0d3ab40, len=1) at ././libpurple/plugins/ssl/ssl-nss.c:532
532 ././libpurple/plugins/ssl/ssl-nss.c: Aucun fichier ou dossier de ce
type.
(gdb) p gsc->private_data
$4 = (void *) 0x0
I have never had such issue in the past years with pidgin, so it very
most probably is due to the discord plugin (and the backtrace suggests
so too)
It seems that somehow discord_socket_got_data passes an improper
connection, I used the attached browntape patch in pidgin to at least
avoid the issue by returning an error instead of crashing my whole
pidgin.
Samuel
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable-debug'), (500,
'testing-debug'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500,
'proposed-updates'), (500, 'oldstable-proposed-updates-debug'), (500,
'oldstable-proposed-updates'), (500, 'oldoldstable'), (500, 'buildd-unstable'),
(500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1,
'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.5.0 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8),
LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages purple-discord depends on:
ii libc6 2.30-2
ii libglib2.0-0 2.64.1-1
ii libjson-glib-1.0-0 1.4.4-2
hi libpurple0 2.13.0-2.2+fix
And additionally:
ii pidgin 2.13.0-2.2+fix amd64 graphical multi-protocol in>
ii pidgin-data 2.13.0-2.2+fix all multi-protocol instant mess>
ii pidgin-dbgsym 2.13.0-2.2+fix amd64 debug symbols for pidgin
purple-discord recommends no packages.
Versions of packages purple-discord suggests:
pn python3-harmony <none>
-- no debconf information
---
libpurple/plugins/ssl/ssl-nss.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/libpurple/plugins/ssl/ssl-nss.c
+++ b/libpurple/plugins/ssl/ssl-nss.c
@@ -529,10 +529,18 @@ ssl_nss_read(PurpleSslConnection *gsc, v
PRInt32 ret;
PurpleSslNssData *nss_data = PURPLE_SSL_NSS_DATA(gsc);
+ if (!nss_data)
+ {
+ ret = -1;
+ errno = EFAULT;
+ }
+ else
+ {
ret = PR_Read(nss_data->in, data, len);
if (ret == -1)
set_errno(PR_GetError());
+ }
return ret;
}