diff options
| author | Garrett D'Amore <garrett@damore.org> | 2019-05-19 12:34:26 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2019-05-19 12:34:26 -0700 |
| commit | c40cc5d16dbb22c46e47a1028265b8ee9fb5df27 (patch) | |
| tree | 9a10a68cefe5c016db8625d7d158bca868ec20a8 | |
| parent | d83d86a140c44cca5f1867479ea7e77a0550e299 (diff) | |
| download | nng-c40cc5d16dbb22c46e47a1028265b8ee9fb5df27.tar.gz nng-c40cc5d16dbb22c46e47a1028265b8ee9fb5df27.tar.bz2 nng-c40cc5d16dbb22c46e47a1028265b8ee9fb5df27.zip | |
fixes #937 Memory Leak in wsstream
| -rw-r--r-- | src/supplemental/websocket/websocket.c | 3 | ||||
| -rw-r--r-- | tests/wsstream.c | 1 |
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); |
