CSN_LEFT_ALIGNED_VAR_BMP didn't handle more than 8 bits.

(CSN Ack/Nack Description wrongly handled in gsm_rlcmac_dl dissector )
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6101

svn path=/trunk/; revision=38745
This commit is contained in:
Anders Broman 2011-08-26 15:25:14 +00:00
parent 740eaf0b6a
commit e0645e724c
1 changed files with 17 additions and 3 deletions

View File

@ -1174,10 +1174,24 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
no_of_bits += pDescr->i;/* size adjusted by offset */
if (no_of_bits > 0)
{ /* a non empty bitmap */
proto_tree_add_text(tree, tvb, bit_offset>>3, (no_of_bits>>3)+1, "%s %s",
decode_bits_in_field(bit_offset, no_of_bits, tvb_get_bits8(tvb, bit_offset, no_of_bits)),
{
if (no_of_bits <= 32)
{
proto_tree_add_text(tree, tvb, bit_offset>>3, (no_of_bits>>3)+1, "%s %s",
decode_bits_in_field(bit_offset, no_of_bits, tvb_get_bits32(tvb, bit_offset, no_of_bits, FALSE)),
pDescr->sz);
}
else if (no_of_bits <= 64)
{
proto_tree_add_text(tree, tvb, bit_offset>>3, (no_of_bits>>3)+1, "%s %s",
decode_bits_in_field(bit_offset, no_of_bits, tvb_get_bits64(tvb, bit_offset, no_of_bits, FALSE)),
pDescr->sz);
}
else
{
proto_tree_add_text(tree, tvb, bit_offset>>3, (no_of_bits>>3)+1, "%s %u bits",
pDescr->sz, no_of_bits);
}
remaining_bits_len -= no_of_bits;
if (remaining_bits_len < 0)