From: Toby DiPasquale Date: Mon, 11 Jul 2016 10:32:45 +0000 (+0100) Subject: netfilter: nf_conntrack_h323: fix off-by-one in DecodeQ931 X-Git-Tag: v4.8-rc1~140^2~45^2~13 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c2b9b4fee8ab86f2bb657e5ac48d803879e92765;p=karo-tx-linux.git netfilter: nf_conntrack_h323: fix off-by-one in DecodeQ931 This patch corrects an off-by-one error in the DecodeQ931 function in the nf_conntrack_h323 module. This error could result in reading off the end of a Q.931 frame. Signed-off-by: Toby DiPasquale Signed-off-by: Pablo Neira Ayuso --- diff --git a/net/netfilter/nf_conntrack_h323_asn1.c b/net/netfilter/nf_conntrack_h323_asn1.c index bcd5ed6b7130..89b2e46925c4 100644 --- a/net/netfilter/nf_conntrack_h323_asn1.c +++ b/net/netfilter/nf_conntrack_h323_asn1.c @@ -846,9 +846,10 @@ int DecodeQ931(unsigned char *buf, size_t sz, Q931 *q931) sz -= len; /* Message Type */ - if (sz < 1) + if (sz < 2) return H323_ERROR_BOUND; q931->MessageType = *p++; + sz--; PRINT("MessageType = %02X\n", q931->MessageType); if (*p & 0x80) { p++;