diff --git a/lib/core-net/lws-dsh.c b/lib/core-net/lws-dsh.c index fc5183567..9a6a48725 100644 --- a/lib/core-net/lws-dsh.c +++ b/lib/core-net/lws-dsh.c @@ -272,7 +272,7 @@ _lws_dsh_alloc_tail(lws_dsh_t *dsh, int kind, const void *src1, size_t size1, */ s.already_checked = dsh; - if (dsh->list.owner) + if (dsh && dsh->list.owner) lws_dll2_foreach_safe(dsh->list.owner, &s, try_foreign); if (!s.best) { @@ -309,7 +309,8 @@ _lws_dsh_alloc_tail(lws_dsh_t *dsh, int kind, const void *src1, size_t size1, if (replace->next) replace->next->prev = &s.best->list; } else - lws_dll2_add_tail(&s.best->list, &dsh->oha[kind].owner); + if (dsh) + lws_dll2_add_tail(&s.best->list, &dsh->oha[kind].owner); assert(s.dsh->locally_free >= s.best->asize); s.dsh->locally_free -= s.best->asize; @@ -352,7 +353,8 @@ _lws_dsh_alloc_tail(lws_dsh_t *dsh, int kind, const void *src1, size_t size1, if (replace->next) replace->next->prev = &s.best->list; } else - lws_dll2_add_tail(&obj->list, &dsh->oha[kind].owner); + if (dsh) + lws_dll2_add_tail(&obj->list, &dsh->oha[kind].owner); assert(s.dsh->locally_free >= asize); s.dsh->locally_free -= asize; diff --git a/lib/roles/http/server/server.c b/lib/roles/http/server/server.c index 8c9a5195c..f55de8c04 100644 --- a/lib/roles/http/server/server.c +++ b/lib/roles/http/server/server.c @@ -133,6 +133,8 @@ done_list: if (info) /* first time */ lwsl_err("VH %s: iface %s port %d DOESN'T EXIST\n", vhost->name, vhost->iface, vhost->listen_port); + else + return -1; return (info->options & LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND) == LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND? -1 : 1; case LWS_ITOSA_NOT_USABLE: @@ -140,6 +142,8 @@ done_list: if (info) /* first time */ lwsl_err("VH %s: iface %s port %d NOT USABLE\n", vhost->name, vhost->iface, vhost->listen_port); + else + return -1; return (info->options & LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND) == LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND? -1 : 1; } diff --git a/lib/roles/ws/client-ws.c b/lib/roles/ws/client-ws.c index 7d70b6a32..32d09e198 100644 --- a/lib/roles/ws/client-ws.c +++ b/lib/roles/ws/client-ws.c @@ -323,10 +323,12 @@ bad_conn_format: } while (e > 0); pc = lws_hdr_simple_ptr(wsi, _WSI_TOKEN_CLIENT_SENT_PROTOCOLS); +#if defined(_DEBUG) if (!pc) { lwsl_parser("lws_client_int_s_hs: no protocol list\n"); } else lwsl_parser("lws_client_int_s_hs: protocol list '%s'\n", pc); +#endif /* * confirm the protocol the server wants to talk was in the list