From fd9e377bace273f387cd80f380817edab84e291e Mon Sep 17 00:00:00 2001 From: yuangongji Date: Mon, 29 Jun 2020 15:15:20 +0800 Subject: [PATCH] check null pointer before using memcpy() --- include/msgpack/sbuffer.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/include/msgpack/sbuffer.h b/include/msgpack/sbuffer.h index c494bae7..8aa93cac 100644 --- a/include/msgpack/sbuffer.h +++ b/include/msgpack/sbuffer.h @@ -12,6 +12,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -59,6 +60,7 @@ static inline void msgpack_sbuffer_free(msgpack_sbuffer* sbuf) static inline int msgpack_sbuffer_write(void* data, const char* buf, size_t len) { msgpack_sbuffer* sbuf = (msgpack_sbuffer*)data; + assert(buf || len == 0); if(sbuf->alloc - sbuf->size < len) { void* tmp; @@ -81,8 +83,10 @@ static inline int msgpack_sbuffer_write(void* data, const char* buf, size_t len) sbuf->alloc = nsize; } - memcpy(sbuf->data + sbuf->size, buf, len); - sbuf->size += len; + if(buf) { + memcpy(sbuf->data + sbuf->size, buf, len); + sbuf->size += len; + } return 0; }