From: Victor Julien Date: Fri, 6 May 2016 13:04:07 +0000 (+0200) Subject: tcp sack: fix alignment issues X-Git-Tag: suricata-3.1RC1~183 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d79208d93ba9a2171a586c6b4692c32c80d02d60;p=thirdparty%2Fsuricata.git tcp sack: fix alignment issues --- diff --git a/src/stream-tcp-sack.c b/src/stream-tcp-sack.c index 7f95d04c4c..9d0071aac6 100644 --- a/src/stream-tcp-sack.c +++ b/src/stream-tcp-sack.c @@ -254,8 +254,13 @@ int StreamTcpSackUpdatePacket(TcpStream *stream, Packet *p) { int records = TCP_GET_SACK_CNT(p); int record = 0; + const uint8_t *data = TCP_GET_SACK_PTR(p); - TCPOptSackRecord *sack_rec = (TCPOptSackRecord *)(TCP_GET_SACK_PTR(p)); + if (records == 0 || data == NULL) + return 0; + + TCPOptSackRecord rec[records], *sack_rec = rec; + memcpy(&rec, data, sizeof(TCPOptSackRecord) * records); for (record = 0; record < records; record++) { SCLogDebug("%p last_ack %u, left edge %u, right edge %u", sack_rec,