Adding header table free function to make sure we free cleanly everywhere.
authorAndrew Canaday <andrew.canaday@nytimes.com>
Fri, 7 Nov 2014 03:20:59 +0000 (11:20 +0800)
committerAndy Green <andy.green@linaro.org>
Fri, 7 Nov 2014 03:20:59 +0000 (11:20 +0800)
lib/parsers.c
lib/private-libwebsockets.h

index 287b532..7dd24fe 100644 (file)
@@ -73,6 +73,15 @@ int lws_allocate_header_table(struct libwebsocket *wsi)
        return 0;
 }
 
+int lws_free_header_table(struct libwebsocket *wsi)
+{
+    if (wsi->u.hdr.ah) {
+        free(wsi->u.hdr.ah);
+        wsi->u.hdr.ah = NULL;
+    }
+    return 0;
+};
+
 LWS_VISIBLE int lws_hdr_total_length(struct libwebsocket *wsi, enum lws_token_indexes h)
 {
        int n;
index da9c7a1..a843501 100755 (executable)
@@ -1013,6 +1013,9 @@ lws_plat_set_socket_options(struct libwebsocket_context *context, int fd);
 LWS_EXTERN int
 lws_allocate_header_table(struct libwebsocket *wsi);
 
+LWS_EXTERN int
+lws_free_header_table(struct libwebsocket *wsi);
+
 LWS_EXTERN char *
 lws_hdr_simple_ptr(struct libwebsocket *wsi, enum lws_token_indexes h);