Skip to content

Commit 92fbefd

Browse files
committed
check null pointer before using memcpy()
1 parent 82ddfc1 commit 92fbefd

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

include/msgpack/sbuffer.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,10 @@ static inline int msgpack_sbuffer_write(void* data, const char* buf, size_t len)
8181
sbuf->alloc = nsize;
8282
}
8383

84-
memcpy(sbuf->data + sbuf->size, buf, len);
85-
sbuf->size += len;
84+
if(buf) {
85+
memcpy(sbuf->data + sbuf->size, buf, len);
86+
sbuf->size += len;
87+
}
8688
return 0;
8789
}
8890

test/msgpack_c.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,7 @@ TEST(MSGPACKC, simple_buffer_str_fix_l)
872872
msgpack_packer pk;
873873
msgpack_packer_init(&pk, &sbuf, msgpack_sbuffer_write);
874874
msgpack_pack_str(&pk, str_size);
875+
assert(str || str_size == 0);
875876
msgpack_pack_str_body(&pk, str, str_size);
876877
EXPECT_EQ(sbuf.size, 0x01u);
877878
EXPECT_EQ(sbuf.data[0], static_cast<char>(0xa0u));

0 commit comments

Comments
 (0)