Brad Bishop | 316dfdd | 2018-06-25 12:45:53 -0400 | [diff] [blame] | 1 | From 929fc9b7068100444e0ffcccd25841f78791e619 Mon Sep 17 00:00:00 2001 |
| 2 | From: Jian Liang <jianliang@tycoint.com> |
| 3 | Date: Fri, 15 Sep 2017 06:40:08 -0400 |
| 4 | Subject: [PATCH] gweb: Fix a crash using wispr over TLS |
| 5 | To: connman@lists.01.org |
| 6 | Cc: wagi@monom.org |
| 7 | |
| 8 | When gnutls_channel is instantiated, the gnutls_channel->established |
| 9 | has to be initiated as FALSE. Otherwise, check_handshake function |
| 10 | won't work. A random initial value 1 of gnutls_channel->established |
| 11 | will make check_handshake return G_IO_STATUS_NORMAL, when the channel |
| 12 | is actually not ready to be used. The observed behaviours are, |
| 13 | |
| 14 | - wispr is getting random errors in wispr_portal_web_result |
| 15 | - ConnMan crashes on exit after those random errors |
| 16 | - when wispr is luckly working, ConnMan doesn't crash on exit |
| 17 | |
| 18 | Signed-off-by: Jian Liang <jianliang@tycoint.com> |
| 19 | |
| 20 | --- |
| 21 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=73e53f3bd9e7debae86341f1eee7b97862a56a5e] |
| 22 | Signed-off-by: André Draszik <andre.draszik@jci.com> |
| 23 | gweb/giognutls.c | 2 +- |
| 24 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 25 | |
| 26 | diff --git a/gweb/giognutls.c b/gweb/giognutls.c |
| 27 | index 09dc9e7..c029a8b 100644 |
| 28 | --- a/gweb/giognutls.c |
| 29 | +++ b/gweb/giognutls.c |
| 30 | @@ -421,7 +421,7 @@ GIOChannel *g_io_channel_gnutls_new(int fd) |
| 31 | |
| 32 | DBG(""); |
| 33 | |
| 34 | - gnutls_channel = g_new(GIOGnuTLSChannel, 1); |
| 35 | + gnutls_channel = g_new0(GIOGnuTLSChannel, 1); |
| 36 | |
| 37 | channel = (GIOChannel *) gnutls_channel; |
| 38 | |
| 39 | -- |
| 40 | 2.7.4 |
| 41 | |