NAS 5GS: fix dissection of 5GSM capability IE

This IE has a variable length to allow future extension.

Change-Id: I158ef8a8aa2f5cace992113a9efeb324beebe1aa
Reviewed-on: https://code.wireshark.org/review/34402
Reviewed-by: Pascal Quantin <pascal@wireshark.org>
This commit is contained in:
Pascal Quantin 2019-08-30 09:11:55 +02:00
parent eda16ed625
commit 98bdb27ebb
1 changed files with 7 additions and 4 deletions

View File

@ -2371,10 +2371,11 @@ de_nas_5gs_mm_ul_data_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
*/
static guint16
de_nas_5gs_sm_5gsm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
guint32 offset, guint len _U_,
de_nas_5gs_sm_5gsm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
guint32 curr_offset = offset;
static const int * flags[] = {
&hf_nas_5gs_spare_b7,
@ -2388,10 +2389,12 @@ de_nas_5gs_sm_5gsm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
NULL
};
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, flags, ENC_BIG_ENDIAN);
curr_offset++;
proto_tree_add_bitmask_list(tree, tvb, offset, 1, flags, ENC_BIG_ENDIAN);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
return 1;
return (curr_offset - offset);
}
/*