comparison plugins/ssl/ssl-gnutls.c @ 7467:f9ed27be344e

[gaim-migrate @ 8080] this should prevent SSL segfaults when you cancel connections before any SSL magic happens committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 09 Nov 2003 08:49:16 +0000
parents 35e652831230
children 5f0f9d7fba6a
comparison
equal deleted inserted replaced
7466:fa0324675ed9 7467:f9ed27be344e
108 static void 108 static void
109 ssl_gnutls_close(GaimSslConnection *gsc) 109 ssl_gnutls_close(GaimSslConnection *gsc)
110 { 110 {
111 GaimSslGnutlsData *gnutls_data = GAIM_SSL_GNUTLS_DATA(gsc); 111 GaimSslGnutlsData *gnutls_data = GAIM_SSL_GNUTLS_DATA(gsc);
112 112
113 if(!gnutls_data)
114 return;
115
113 gnutls_bye(gnutls_data->session, GNUTLS_SHUT_RDWR); 116 gnutls_bye(gnutls_data->session, GNUTLS_SHUT_RDWR);
114 117
115 gnutls_deinit(gnutls_data->session); 118 gnutls_deinit(gnutls_data->session);
116 119
117 g_free(gnutls_data); 120 g_free(gnutls_data);
133 136
134 static size_t 137 static size_t
135 ssl_gnutls_write(GaimSslConnection *gsc, const void *data, size_t len) 138 ssl_gnutls_write(GaimSslConnection *gsc, const void *data, size_t len)
136 { 139 {
137 GaimSslGnutlsData *gnutls_data = GAIM_SSL_GNUTLS_DATA(gsc); 140 GaimSslGnutlsData *gnutls_data = GAIM_SSL_GNUTLS_DATA(gsc);
138 size_t s; 141 size_t s = 0;
139 142
140 s = gnutls_record_send(gnutls_data->session, data, len); 143 if(gnutls_data)
144 s = gnutls_record_send(gnutls_data->session, data, len);
141 145
142 if (s < 0) 146 if (s < 0)
143 s = 0; 147 s = 0;
144 148
145 return s; 149 return s;