From Rene Pilz:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 11 Aug 2005 20:47:09 +0000 (20:47 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 11 Aug 2005 20:47:09 +0000 (20:47 +0000)
The MCC/MNC in de_gmm_rai is not correct decoded

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@15296 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-gsm_a.c

index b526ac008edf5b0626c3ea09756a5ee0003dbc5a..398c954d4bc8c52bccbbf923abe89ba61b258e37 100644 (file)
@@ -10396,12 +10396,15 @@ de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
     len = len;
     curr_offset = offset;
 
-    mcc = tvb_get_guint8(tvb, curr_offset);
-    mcc |= (tvb_get_guint8(tvb, curr_offset+1)&0x0f)<<8;
-    mnc = tvb_get_guint8(tvb, curr_offset+2);
-    mnc |= (tvb_get_guint8(tvb, curr_offset+1)<<4)&0x0f00;
-    if ((mnc&0x0f00) == 0x0f00 )
-       mnc&=0xff;
+    mcc = (tvb_get_guint8(tvb, curr_offset) & 0x0f) <<8;
+       mcc |= (tvb_get_guint8(tvb, curr_offset) & 0xf0);
+       mcc |= (tvb_get_guint8(tvb, curr_offset+1) & 0x0f);
+       mnc = (tvb_get_guint8(tvb, curr_offset+2) & 0x0f) <<8;
+       mnc |= (tvb_get_guint8(tvb, curr_offset+2) & 0xf0);
+       mnc |= (tvb_get_guint8(tvb, curr_offset+1) & 0xf0) >>4;
+       if ((mnc&0x000f) == 0x000f) 
+               mnc>>4;
+
     lac = tvb_get_guint8(tvb, curr_offset+3);
     lac <<= 8;
     lac |= tvb_get_guint8(tvb, curr_offset+4);