aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/gsmmap
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-09-20 20:04:01 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-09-20 20:04:01 +0000
commit1bb6396a9308e94ed4bbe73598d88e31310b4c99 (patch)
tree4b6055f2c81711b358a16bb756045c3be6f5d876 /asn1/gsmmap
parent5d98676745534b6f40068898a09f23c42008c5a9 (diff)
Fix bug #404 Decoding of MSISDN on GSM is incomplete.
svn path=/trunk/; revision=15906
Diffstat (limited to 'asn1/gsmmap')
-rw-r--r--asn1/gsmmap/packet-gsm_map-template.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/asn1/gsmmap/packet-gsm_map-template.c b/asn1/gsmmap/packet-gsm_map-template.c
index 8deefeab7f..d9238f22d5 100644
--- a/asn1/gsmmap/packet-gsm_map-template.c
+++ b/asn1/gsmmap/packet-gsm_map-template.c
@@ -135,7 +135,7 @@ unpack_digits(tvbuff_t *tvb, int offset){
length = length - offset;
digit_str = g_malloc(length*2+1);
- while ( offset < length ){
+ while ( offset <= length ){
octet = tvb_get_guint8(tvb,offset);
digit_str[i] = ((octet & 0x0f) + 0x30);
@@ -146,8 +146,10 @@ unpack_digits(tvbuff_t *tvb, int offset){
*/
octet = octet >> 4;
- if (octet == 0x0f) /* odd number bytes - hit filler */
+ if (octet == 0x0f){ /* odd number bytes - hit filler */
+ i++;
break;
+ }
digit_str[i] = ((octet & 0x0f) + 0x30);
i++;