From 8065439f965c4312052b34cfc878789ad49d5848 Mon Sep 17 00:00:00 2001 From: Deomid Ryabkov <rojer@cesanta.com> Date: Thu, 14 Sep 2017 14:00:41 +0300 Subject: [PATCH] Acquire lock when manipulating rx in SSL recv path PUBLISHED_FROM=a34cfa3ebc12daf75d7f24c8d3f3707dcc33d9a2 --- mongoose.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mongoose.c b/mongoose.c index b3461bf72..bb259a68b 100644 --- a/mongoose.c +++ b/mongoose.c @@ -15465,6 +15465,7 @@ int ssl_socket_recv(void *ctx, unsigned char *buf, size_t len) { } size_t seg_len = (seg->len - cs->rx_offset); DBG(("%u %u %u %u", len, cs->rx_chain->len, seg_len, cs->rx_chain->tot_len)); + mgos_lock(); len = MIN(len, seg_len); pbuf_copy_partial(seg, buf, len, cs->rx_offset); cs->rx_offset += len; @@ -15476,6 +15477,7 @@ int ssl_socket_recv(void *ctx, unsigned char *buf, size_t len) { pbuf_free(seg); cs->rx_offset = 0; } + mgos_unlock(); LOG(LL_DEBUG, ("%p <- %d", nc, (int) len)); return len; } -- GitLab