pidgin/pidgin

Merged in discord-ssl-crash (pull request #679)
release-2.x.y
2020-04-09, Gary Kramlich
0988a438ed3e
Merged in discord-ssl-crash (pull request #679)

Make ssl_nss_read robust against bogus connection, like ssl_nss_write is

Approved-by: Gary Kramlich
Approved-by: Eion Robb
--- a/libpurple/plugins/ssl/ssl-gnutls.c Thu Apr 09 02:38:32 2020 -0500
+++ b/libpurple/plugins/ssl/ssl-gnutls.c Thu Apr 09 07:39:55 2020 +0000
@@ -451,9 +451,10 @@
ssl_gnutls_read(PurpleSslConnection *gsc, void *data, size_t len)
{
PurpleSslGnutlsData *gnutls_data = PURPLE_SSL_GNUTLS_DATA(gsc);
- ssize_t s;
+ ssize_t s = 0;
- s = gnutls_record_recv(gnutls_data->session, data, len);
+ if(gnutls_data)
+ s = gnutls_record_recv(gnutls_data->session, data, len);
if(s == GNUTLS_E_AGAIN || s == GNUTLS_E_INTERRUPTED) {
s = -1;
--- a/libpurple/plugins/ssl/ssl-nss.c Thu Apr 09 02:38:32 2020 -0500
+++ b/libpurple/plugins/ssl/ssl-nss.c Thu Apr 09 07:39:55 2020 +0000
@@ -529,6 +529,9 @@
PRInt32 ret;
PurpleSslNssData *nss_data = PURPLE_SSL_NSS_DATA(gsc);
+ if (!nss_data)
+ return 0;
+
ret = PR_Read(nss_data->in, data, len);
if (ret == -1)