6cf28ae350
Resolves: rhbz#2046734
23 lines
1.0 KiB
Diff
23 lines
1.0 KiB
Diff
commit 8dfe2f07847a4ead1c54959de794557713bc9f79
|
|
Author: Tomas Korbar <tkorbar@redhat.com>
|
|
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;
|