From 6ac1d7a7cdb49fb8db4ff280c5159098b0b4284f Mon Sep 17 00:00:00 2001 From: russagit Date: Wed, 10 Aug 2022 09:23:13 +0000 Subject: [PATCH] sipt: Fix isup generic_number and generic_number_nai decoding (GH #3209) (cherry picked from commit 9f3d1c274ad926e9640d0091c9702a34f8b2e539) --- src/modules/sipt/ss7_parser.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/sipt/ss7_parser.c b/src/modules/sipt/ss7_parser.c index 30d85cdb1e2..eaac53e5ca0 100644 --- a/src/modules/sipt/ss7_parser.c +++ b/src/modules/sipt/ss7_parser.c @@ -570,7 +570,7 @@ int isup_get_generic_number_nai(unsigned char *buf, int len) if(offset != -1 && len-offset-2 > 1) { - return buf[offset+2] & 0x7F; + return buf[offset+3] & 0x7F; } return -1; } @@ -586,13 +586,13 @@ int isup_get_generic_number(unsigned char *buf, int len, char* sb_buf) if(offset != -1 && len-offset-2 > 1) { sbparamlen = (buf[offset+1] & 0xFF) - 2; - oddeven = (buf[offset+2] >> 7) & 0x1; + oddeven = (buf[offset+3] >> 7) & 0x1; while ((sbparamlen > 0) && (buf[offset] != 0)) { - sb_buf[sb_i]="0123456789ABCDEF"[(buf[offset+4+sb_j] & 0x0F)]; + sb_buf[sb_i]="0123456789ABCDEF"[(buf[offset+5+sb_j] & 0x0F)]; if(sbparamlen > 1 || oddeven == 0) { - sb_buf[sb_i+1]="0123456789ABCDEF"[(buf[offset+4+sb_j] >>4 & 0x0F)]; + sb_buf[sb_i+1]="0123456789ABCDEF"[(buf[offset+5+sb_j] >>4 & 0x0F)]; } sb_i=sb_i+2; sbparamlen--;