sup: Fix RP header offset and RP data length calculations

This commit is contained in:
Ivan Kluchnikov 2015-12-29 19:00:28 +03:00
parent 45fdb6a728
commit e7dc282b51
1 changed files with 4 additions and 4 deletions

View File

@ -209,10 +209,10 @@ static int rx_sms_message(const uint8_t* data, size_t data_len)
char extension[15];
uint8_t *value;
size_t value_len;
int offset = 0;
int offset = 1;
uint8_t *rp_hdr = (uint8_t*)data + offset;
data_len -= 1;
offset++;
rc = gprs_match_tlv(&rp_hdr, &data_len, 0x82, &value, &value_len);
if (rc <= 0)
@ -232,8 +232,8 @@ static int rx_sms_message(const uint8_t* data, size_t data_len)
struct msgb *msg = gsm411_msgb_alloc();
uint8_t *rp_msg;
rp_msg = (uint8_t *)msgb_put(msg, data_len - offset);
memcpy(rp_msg, data + offset, data_len - offset);
rp_msg = (uint8_t *)msgb_put(msg, data_len);
memcpy(rp_msg, data + offset, data_len);
struct gsm_subscriber *subscr;
subscr = subscr_get_by_extension(NULL, extension);