diff --git a/lib/roles/http/client/client-handshake.c b/lib/roles/http/client/client-handshake.c index 18b0d9ad2..5d230b10c 100644 --- a/lib/roles/http/client/client-handshake.c +++ b/lib/roles/http/client/client-handshake.c @@ -349,10 +349,12 @@ create_new_conn: if (!wsi->cli_hostname_copy) { if (wsi->stash) wsi->cli_hostname_copy = lws_strdup(wsi->stash->host); - else - wsi->cli_hostname_copy = - lws_strdup(lws_hdr_simple_ptr(wsi, - _WSI_TOKEN_CLIENT_PEER_ADDRESS)); + else { + char *pa = lws_hdr_simple_ptr(wsi, + _WSI_TOKEN_CLIENT_PEER_ADDRESS); + if (pa) + wsi->cli_hostname_copy = lws_strdup(pa); + } } /* diff --git a/lib/roles/http/server/lws-spa.c b/lib/roles/http/server/lws-spa.c index 6300f7d83..4e2569544 100644 --- a/lib/roles/http/server/lws-spa.c +++ b/lib/roles/http/server/lws-spa.c @@ -352,7 +352,8 @@ retry_as_first: if (!s->temp[0]) { if (s->mp < (int)sizeof(s->content_disp) - 1) s->content_disp[s->mp++] = *in; - s->content_disp[s->mp] = '\0'; + if (s->mp < (int)sizeof(s->content_disp)) + s->content_disp[s->mp] = '\0'; goto done; }