diff --git a/mongoose.c b/mongoose.c index fb4883cf..0c0ffea1 100644 --- a/mongoose.c +++ b/mongoose.c @@ -11581,6 +11581,10 @@ static int mg_tls_recv_record(struct mg_connection *c) { return -1; } n = mg_chacha20_poly1305_decrypt(dec, key, nonce, msg, msgsz); + if (n == (size_t) -1) { + mg_error(c, "decryption error"); + return -1; + } memmove(msg, dec, n); mg_free(dec); } diff --git a/src/tls_builtin.c b/src/tls_builtin.c index 5bd02e56..27c3ca11 100644 --- a/src/tls_builtin.c +++ b/src/tls_builtin.c @@ -516,6 +516,10 @@ static int mg_tls_recv_record(struct mg_connection *c) { return -1; } n = mg_chacha20_poly1305_decrypt(dec, key, nonce, msg, msgsz); + if (n == (size_t) -1) { + mg_error(c, "decryption error"); + return -1; + } memmove(msg, dec, n); mg_free(dec); }