Thu, 09 Apr 2020 07:39:55 +0000
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)