From 08b375d7500f03d6d42b59549fb919e92dd25b36 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 19 Jan 2023 17:50:18 +0800 Subject: [PATCH] fix(rpc): don't parse msgpack if buflen is 0 This prevents `buflen` from becoming a very large number when it is 0 when calling mpack_rtoken(). (cherry picked from commit 266f42ed8b75554c313c8665cf77eb4c6734735e) --- src/mpack/mpack_core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mpack/mpack_core.c b/src/mpack/mpack_core.c index 4ee67a032a..3424f444b9 100644 --- a/src/mpack/mpack_core.c +++ b/src/mpack/mpack_core.c @@ -173,6 +173,9 @@ MPACK_API int mpack_write(mpack_tokbuf_t *tokbuf, char **buf, size_t *buflen, int mpack_rtoken(const char **buf, size_t *buflen, mpack_token_t *tok) { + if (*buflen == 0) { + return MPACK_EOF; + } unsigned char t = ADVANCE(buf, buflen); if (t < 0x80) { /* positive fixint */