aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_gm.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-10-20 16:50:29 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2021-10-20 17:45:32 +0200
commit23289dc2f71a99adcde84c199e596e7a7ed2caab (patch)
tree4010131351597af8279850f621f924cded36dacb /epan/dissectors/packet-gsm_a_gm.c
parentffdc5622d1be97af10987c2d8677b0456ae04e88 (diff)
csn1: Avoid failing if optional DownlinkDualCarrierCapability_r7 is missing
All additional release fields in RadioAccesCapabilities are considered optional, and the CSN_DESCR for Content_t already marks almost all as such, except DownlinkDualCarrierCapability_r7. It has been found that some MS transmits a MS RA Capability with a Length=61 bits where the last bit in the buffer is setting the Exist bit for DownlinkDualCarrierCapability_r7 as 1. Hence, the CSN1 decoder failed to decode the whole message because it expected to keep reading there despite there's no more bytes to read. While this is could actually be considered an MS bug, let's relax our expectancies and simply consider the case { 1 <end> } as it was { 0 }, and mark skip decoding DownlinkDualCarrierCapability_r7. That what wireshark (packet-gsm_a_gsm.c) or pycrate do for instance. This patch itself doesn't fix the problem where actually the Exist bit is stored as 1 in the output decoded structure, but simply allows keep ongoing with decoding until the end. This issue will be fixed in a follow-up patch. This patch is a port from patch fixing same issue in the osmo-pcu.git copy of csn1 decoder: https://git.osmocom.org/osmo-pcu/commit/?id=ebdc0d8c170ee2dbf23b19056d6c2d0ef316b3c2
Diffstat (limited to 'epan/dissectors/packet-gsm_a_gm.c')
0 files changed, 0 insertions, 0 deletions