aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2019-05-19 12:34:26 -0700
committerGarrett D'Amore <garrett@damore.org>2019-05-19 12:34:26 -0700
commitc40cc5d16dbb22c46e47a1028265b8ee9fb5df27 (patch)
tree9a10a68cefe5c016db8625d7d158bca868ec20a8
parentd83d86a140c44cca5f1867479ea7e77a0550e299 (diff)
downloadnng-c40cc5d16dbb22c46e47a1028265b8ee9fb5df27.tar.gz
nng-c40cc5d16dbb22c46e47a1028265b8ee9fb5df27.tar.bz2
nng-c40cc5d16dbb22c46e47a1028265b8ee9fb5df27.zip
fixes #937 Memory Leak in wsstream
-rw-r--r--src/supplemental/websocket/websocket.c3
-rw-r--r--tests/wsstream.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/supplemental/websocket/websocket.c b/src/supplemental/websocket/websocket.c
index 91affc62..d8b7f7d5 100644
--- a/src/supplemental/websocket/websocket.c
+++ b/src/supplemental/websocket/websocket.c
@@ -447,10 +447,13 @@ ws_frame_prep_tx(nni_ws *ws, ws_frame *frame)
// Potentially allocate space for the data if we need to.
// Note that an empty message is legal.
if ((frame->bufsz < frame->len) && (frame->len > 0)) {
+ nni_free(frame->buf, frame->bufsz);
frame->buf = nni_alloc(frame->len);
if (frame->buf == NULL) {
+ frame->bufsz = 0;
return (NNG_ENOMEM);
}
+ frame->bufsz = frame->len;
}
buf = frame->buf;
diff --git a/tests/wsstream.c b/tests/wsstream.c
index dbfcdea2..c51e2630 100644
--- a/tests/wsstream.c
+++ b/tests/wsstream.c
@@ -66,6 +66,7 @@ TestMain("Websocket STREAM", {
Reset({
nng_aio_free(daio);
nng_aio_free(laio);
+ nng_aio_free(maio);
if (c1 != NULL) {
nng_stream_close(c1);
nng_stream_free(c1);