commit 8dfe2f07847a4ead1c54959de794557713bc9f79 Author: Tomas Korbar Date: Fri Jan 28 15:33:14 2022 +0100 Expand extbuf buffer diff --git a/proto_bin.c b/proto_bin.c index b61c3bb..50b3591 100644 --- a/proto_bin.c +++ b/proto_bin.c @@ -110,7 +110,10 @@ int try_read_command_binary(conn *c) { // want to refactor a ton of code either. Header is only ever used out // of c->binary_header, but the extlen stuff is used for the latter // bytes. Just wastes 24 bytes on the stack this way. - char extbuf[sizeof(c->binary_header) + BIN_MAX_EXTLEN+1]; + + // +4 need to be here because extbuf is used for protocol_binary_request_incr + // and its member message is alligned to 48 bytes intead of 44 + char extbuf[sizeof(c->binary_header) + BIN_MAX_EXTLEN+4]; memcpy(extbuf + sizeof(c->binary_header), c->rcurr + sizeof(c->binary_header), extlen > BIN_MAX_EXTLEN ? BIN_MAX_EXTLEN : extlen); c->rbytes -= sizeof(c->binary_header) + extlen + keylen;