From 44128847e8965ec64384ac48c65f5d28126b3666 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Tue, 4 Aug 2015 13:03:20 +0100 Subject: Fix a bug in the new PACKET implementation Some of the PACKET functions were returning incorrect data. An unfortunate choice of test data in the unit test was masking the failure. Reviewed-by: Tim Hudson --- ssl/packet_locl.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'ssl') diff --git a/ssl/packet_locl.h b/ssl/packet_locl.h index 4aab5cb..80d0b93 100644 --- a/ssl/packet_locl.h +++ b/ssl/packet_locl.h @@ -176,8 +176,8 @@ __owur static inline int PACKET_peek_net_3(PACKET *pkt, unsigned long *data) return 0; *data = ((unsigned long)(*pkt->curr)) << 16; - *data |= ((unsigned long)(*pkt->curr + 1)) << 8; - *data |= *pkt->curr + 2; + *data |= ((unsigned long)(*(pkt->curr + 1))) << 8; + *data |= *(pkt->curr + 2); return 1; } @@ -203,9 +203,9 @@ __owur static inline int PACKET_peek_net_4(PACKET *pkt, unsigned long *data) return 0; *data = ((unsigned long)(*pkt->curr)) << 24; - *data |= ((unsigned long)(*pkt->curr + 1)) << 16; - *data |= ((unsigned long)(*pkt->curr + 2)) << 8; - *data |= *pkt->curr+3; + *data |= ((unsigned long)(*(pkt->curr + 1))) << 16; + *data |= ((unsigned long)(*(pkt->curr + 2))) << 8; + *data |= *(pkt->curr+3); return 1; } @@ -254,9 +254,9 @@ __owur static inline int PACKET_peek_4(PACKET *pkt, unsigned long *data) return 0; *data = *pkt->curr; - *data |= ((unsigned long)(*pkt->curr + 1)) << 8; - *data |= ((unsigned long)(*pkt->curr + 2)) << 16; - *data |= ((unsigned long)(*pkt->curr + 3)) << 24; + *data |= ((unsigned long)(*(pkt->curr + 1))) << 8; + *data |= ((unsigned long)(*(pkt->curr + 2))) << 16; + *data |= ((unsigned long)(*(pkt->curr + 3))) << 24; return 1; } -- cgit v1.1