netfilter: nf_conntrack_h323: fix off-by-one in DecodeQ931
authorToby DiPasquale <toby@cbcg.net>
Mon, 11 Jul 2016 10:32:45 +0000 (11:32 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 11 Jul 2016 10:32:45 +0000 (12:32 +0200)
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 <toby@cbcg.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_h323_asn1.c

index bcd5ed6b713048e781f73f91e80a0e055eafb6d5..89b2e46925c4bed5d19f6522ab6f45c02c5b0b95 100644 (file)
@@ -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++;