remove double free attempts from no ACCEPT server response cleanup path
authorAndy Green <andy.green@linaro.org>
Wed, 13 Jan 2016 10:48:50 +0000 (18:48 +0800)
committerAndy Green <andy.green@linaro.org>
Wed, 13 Jan 2016 10:48:50 +0000 (18:48 +0800)
The generic wsi close code is smart enough to clean up after these allocations itself

Signed-off-by: Andy Green <andy.green@linaro.org>
lib/client.c

index 344cf6f..40c2391 100644 (file)
@@ -527,18 +527,18 @@ lws_client_interpret_server_handshake(struct lws *wsi)
         * Now let's confirm it sent all the necessary headers
         */
 
+       p = lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP);
+       if (!p) {
+               lwsl_info("no URI\n");
+               goto bail3;
+       }
+
        if (lws_hdr_total_length(wsi, WSI_TOKEN_ACCEPT) == 0) {
                lwsl_info("no ACCEPT\n");
-               p = lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP);
                isErrorCodeReceived = 1;
                goto bail3;
        }
 
-       p = lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP);
-       if (!p) {
-               lwsl_info("no URI\n");
-               goto bail3;
-       }
        if (p && strncmp(p, "101", 3)) {
                lwsl_warn(
                       "lws_client_handshake: got bad HTTP response '%s'\n", p);
@@ -852,7 +852,6 @@ check_accept:
        return 0;
 
 bail3:
-       lws_free_set_NULL(wsi->u.ws.rx_ubuf);
        close_reason = LWS_CLOSE_STATUS_NOSTATUS;
 
 bail2:
@@ -871,8 +870,7 @@ bail2:
 
        lwsl_info("closing connection due to bail2 connection error\n");
 
-       /* free up his parsing allocations */
-       lws_free_header_table(wsi);
+       /* closing will free up his parsing allocations */
        lws_close_free_wsi(wsi, close_reason);
 
        return 1;