From 377188189a65c66bd8e27dbef080fad36c1590da Mon Sep 17 00:00:00 2001 From: Andrew Canaday Date: Fri, 7 Nov 2014 11:20:59 +0800 Subject: [PATCH] Adding header table free function to make sure we free cleanly everywhere. --- lib/parsers.c | 9 +++++++++ lib/private-libwebsockets.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/lib/parsers.c b/lib/parsers.c index 287b5325..7dd24fed 100644 --- a/lib/parsers.c +++ b/lib/parsers.c @@ -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; diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index da9c7a1c..a843501d 100755 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -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);