diff --git a/lib/core-net/lws-dsh.c b/lib/core-net/lws-dsh.c index 7e28dad0e..e03a1490c 100644 --- a/lib/core-net/lws-dsh.c +++ b/lib/core-net/lws-dsh.c @@ -269,7 +269,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) { @@ -306,7 +306,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; @@ -349,7 +350,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 3ecda733d..70a8ce0fc 100644 --- a/lib/roles/http/server/server.c +++ b/lib/roles/http/server/server.c @@ -130,6 +130,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: @@ -137,6 +139,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 61a59d5a0..17a6036db 100644 --- a/lib/roles/ws/client-ws.c +++ b/lib/roles/ws/client-ws.c @@ -320,10 +320,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