The fix: change to 'if ((signed)curr_len <= 0)'.
This is a bit of a hack but I think it works.
See the comment in this file (packet-gsm_a_common.h).
svn path=/trunk/; revision=29319
- Update PD values to the latest spec.
- Remove some non ASCII chars.
- Start dissecton of LTE NAS ESM EPS messages and IE's.
svn path=/trunk/; revision=27605
The attached patch adds the following enhancements:
- remove duplicated code for Reduced Frame Number computation, and solve
guint64 issue in the same time (see bug 3028 for details)
- BA Range IE decoding
- BA List Pref IE decoding
- UTRAN Frequency List IE decoding
- Cell Selection Indicator after Release of all TCH and SDCCH IE decoding
- UTRAN Classmark Change message decoding (with a call to RRC dissector to
decode the INTER RAT HANDOVER INFO message)
- add Inter System To UTRAN Handover Command message decoding
As usual it compiles fine on Windows but I could not check on Linux.
svn path=/trunk/; revision=26688
Much as I hate white space changes, I got fed up of the huge variation of styles within these files, and tried to get to a much smaller range of variation. Also a few comment tidies, and use of _U_ for unused args rather than "arg = arg" lines.
svn path=/trunk/; revision=26140
1 new split file (GMM & SM in one file) and diff patches for the others. The RR, RP and BSSMAP patches are really a tidy-up: now they are split it becomes clear what was redundant code.
svn path=/trunk/; revision=26064
RR has been split from DTAP, with common stuff going to the common files (plus a few minor knock-on consequences).
Fix the broken tap:
I had not realised that the register_tap call in the dissector registration actually _created_ the tap entry (not the register_tap_listener), and not just associated the tap_id returned with the tap registered by the listener. The use of separate statics by the split lead to 3 taps called "gsm_a", but only the first of which was ever found in the tap_queue_packet. Added (yet another) global for now to cope.
Also attached is a patch to tap.c which simply returns the same tap_id if the register_tap is called twice with the same name - I can't see any downside to this, can you? Anyway it seemed to work with deliberately keeping multiple calls.
svn path=/trunk/; revision=26039
All I've done in these is to split the 3 obviously distinct protocols (BSSMAP & RP) from the still-large (and wrongly-named) DTAP (really the whole of layer 3 - it includes RR and packet parts too).
So far I've only split in a "minimum change" manner - there is clearly some tidying and structure enhancement of how the common bits are used, removing the globals just added, and great scope for consistency of white space, improved naming etc. - but I thought it best to keep it very close to the original initially to establish the split.
With some changes to make it compile on Windows.
svn path=/trunk/; revision=25917