diff options
Diffstat (limited to 'asn1/gsmmap')
-rw-r--r-- | asn1/gsmmap/packet-gsm_map-template.c | 6 |
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++; |