diff --git a/package/ipmitool/0011-channel-Fix-buffer-overflow.patch b/package/ipmitool/0011-channel-Fix-buffer-overflow.patch index 8d7ecb9550..62e04c3e27 100644 --- a/package/ipmitool/0011-channel-Fix-buffer-overflow.patch +++ b/package/ipmitool/0011-channel-Fix-buffer-overflow.patch @@ -14,7 +14,12 @@ the final response’s `data_len`, which can lead to stack buffer overflow on the final copy. [Retrieve from: -https://github.com/ipmitool/ipmitool/commit/9452be87181a6e83cfcc768b3ed8321763db50e4] +https://github.com/ipmitool/ipmitool/commit/9452be87181a6e83cfcc768b3ed8321763db50e4 + +The patch is slightly modified manually. The define +(MAX_CIPHER_SUITE_DATA_LEN) was introduced upstream in another patch. +Replace the define by the value 0x10.] + Signed-off-by: Heiko Thiery --- lib/ipmi_channel.c | 5 ++++- @@ -31,7 +36,7 @@ index fab2e54..59ac227 100644 - if (rsp->ccode > 0) { + if (rsp->ccode + || rsp->data_len < 1 -+ || rsp->data_len > sizeof(uint8_t) + MAX_CIPHER_SUITE_DATA_LEN) ++ || rsp->data_len > sizeof(uint8_t) + 0x10) + { lprintf(LOG_ERR, "Get Channel Cipher Suites failed: %s", val2str(rsp->ccode, completion_code_vals));