From 10a6afdcd9c94adc3e6fbd6d8840f3cc4bc3ecdf Mon Sep 17 00:00:00 2001 From: Andy Green Date: Fri, 19 Feb 2021 08:15:10 +0000 Subject: [PATCH] sspc: avoid dsh deref if stream instantiation failed --- lib/core-net/lws-dsh.c | 8 ++++++-- lib/secure-streams/secure-streams-process.c | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/core-net/lws-dsh.c b/lib/core-net/lws-dsh.c index c641f79d0..0ecdfd490 100644 --- a/lib/core-net/lws-dsh.c +++ b/lib/core-net/lws-dsh.c @@ -467,8 +467,12 @@ lws_dsh_free(void **pobj) int lws_dsh_get_head(lws_dsh_t *dsh, int kind, void **obj, size_t *size) { - lws_dsh_obj_t *_obj = (lws_dsh_obj_t *) - lws_dll2_get_head(&dsh->oha[kind + 1].owner); + lws_dsh_obj_t *_obj; + + if (!dsh) + return 1; + + _obj = (lws_dsh_obj_t *)lws_dll2_get_head(&dsh->oha[kind + 1].owner); if (!_obj) { *obj = 0; diff --git a/lib/secure-streams/secure-streams-process.c b/lib/secure-streams/secure-streams-process.c index 2f6813ae6..47b1fce58 100644 --- a/lib/secure-streams/secure-streams-process.c +++ b/lib/secure-streams/secure-streams-process.c @@ -633,6 +633,8 @@ again: case LPCSPROX_REPORTING_FAIL: goto hangup; case LPCSPROX_OPERATIONAL: + if (!conn) + break; if (pay) { lws_dsh_free((void **)&p);