diff options
author | Anton Blanchard <anton@samba.org> | 2014-04-12 15:28:34 +1000 |
---|---|---|
committer | Zdenek Styblik <stybla@turnovfree.net> | 2014-04-12 15:13:25 +0200 |
commit | 8d5e8fcf7a1cd2b9b59e9c7907445974acf294b1 (patch) | |
tree | 46b1c36844387aa314a85e6a7f48cd74f8af6404 | |
parent | 2c7526be6b0bcd20c0b1e428e15ce40838cf2208 (diff) | |
download | ipmitool-8d5e8fcf7a1cd2b9b59e9c7907445974acf294b1.tar.gz |
Incorrect byteswap in SOL maximum payload code
max_inbound_payload_size, max_outbound_payload_size and port are
assembled byte by byte using shifts. This works correctly in both
little and big endian and doing a subsequent byte swap is wrong.
To highlight this issue I dumped the values on a big endian machine:
max_inbound_payload_size 51200
max_outbound_payload_size 51200
port 28418
And after this fix:
max_inbound_payload_size 200
max_outbound_payload_size 200
port 623
Signed-off-by: Zdenek Styblik <stybla@turnovfree.net>
-rw-r--r-- | lib/ipmi_sol.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/lib/ipmi_sol.c b/lib/ipmi_sol.c index 6a02e91..a5b962f 100644 --- a/lib/ipmi_sol.c +++ b/lib/ipmi_sol.c @@ -1830,17 +1830,6 @@ ipmi_sol_activate(struct ipmi_intf * intf, int looptest, int interval, (ap_rsp.payload_udp_port[1] << 8) | ap_rsp.payload_udp_port[0]; - - #if WORDS_BIGENDIAN - intf->session->sol_data.max_inbound_payload_size = - BSWAP_16(intf->session->sol_data.max_inbound_payload_size); - intf->session->sol_data.max_outbound_payload_size = - BSWAP_16(intf->session->sol_data.max_outbound_payload_size); - intf->session->sol_data.port = - BSWAP_16(intf->session->sol_data.port); - #endif - - intf->session->timeout = 1; |