From 82239e6d455fc7d49f1db8dd3b4935b45b8c6fb3 Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Sun, 22 Dec 2013 15:21:08 +0000 Subject: [PATCH] net-test: packetdrill: fix non aligned memory access to TCP SACK option Fixes "make tests" on FreeBSD/arm. Signed-off-by: tuexen@fh-muenster.de --- gtests/net/packetdrill/run_packet.c | 13 +++++++------ gtests/net/packetdrill/tcp_options_to_string.c | 6 ++---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/gtests/net/packetdrill/run_packet.c b/gtests/net/packetdrill/run_packet.c index 639940fb..5b4c9f2b 100644 --- a/gtests/net/packetdrill/run_packet.c +++ b/gtests/net/packetdrill/run_packet.c @@ -422,12 +422,13 @@ static int offset_sack_blocks(struct packet *packet, return STATUS_ERR; int i = 0; for (i = 0; i < num_blocks; ++i) { - struct sack_block *block = - option->data.sack.block + i; - block->left = - htonl(ntohl(block->left) + ack_offset); - block->right = - htonl(ntohl(block->right) + ack_offset); + u32 val; + val = ntohl(option->data.sack.block[i].left); + val += ack_offset; + option->data.sack.block[i].left = htonl(val); + val = ntohl(option->data.sack.block[i].right); + val += ack_offset; + option->data.sack.block[i].right = htonl(val); } } } diff --git a/gtests/net/packetdrill/tcp_options_to_string.c b/gtests/net/packetdrill/tcp_options_to_string.c index 758675a5..d022ec2c 100644 --- a/gtests/net/packetdrill/tcp_options_to_string.c +++ b/gtests/net/packetdrill/tcp_options_to_string.c @@ -92,13 +92,11 @@ int tcp_options_to_string(struct packet *packet, goto out; int i = 0; for (i = 0; i < num_blocks; ++i) { - const struct sack_block *block = - option->data.sack.block + i; if (i > 0) fputc(' ', s); fprintf(s, "%u:%u", - ntohl(block->left), - ntohl(block->right)); + ntohl(option->data.sack.block[i].left), + ntohl(option->data.sack.block[i].right)); } break; -- GitLab