In decode_seq(), the extension components loop iterates through bmp2_len bits. However, it evaluates whether the component index exceeds the known upper bound (`i >= f->ub`) and whether it contains a STOP attribute before checking if the field is actually present in `bmp2`: if (i >= f->ub) { ... len = get_len(bs); ... } if (son->attr & STOP) return H323_ERROR_STOP; if (!((0x80000000 >> opt) & bmp2)) continue; If an unknown extension is marked absent in the bitmap (`bit == 0`), the parser erroneously attempts to read a non-existent open type length from the bitstream and advances `bs->cur` by garbage bytes. Furthermore, if a known field has the STOP attribute but is absent from the transmission, decoding aborts prematurely. Move the presence bitmap check to the beginning of the loop body so absent extensions are skipped immediately before attempting to decode or inspect attributes. Also append a 'U' suffix to 0x80000000 to prevent signed shift overflow. Fixes: f587de0e2feb ("[NETFILTER]: nf_conntrack/nf_nat: add H.323 helper port") Cc: stable@vger.kernel.org Signed-off-by: Subham Pal --- [Note: Raw patch attached to avoid webmail tab/whitespace corruption]