mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-24 16:43:39 +00:00
sup: Fix RP header offset and RP data length calculations
This commit is contained in:
@@ -209,10 +209,10 @@ static int rx_sms_message(const uint8_t* data, size_t data_len)
|
|||||||
char extension[15];
|
char extension[15];
|
||||||
uint8_t *value;
|
uint8_t *value;
|
||||||
size_t value_len;
|
size_t value_len;
|
||||||
int offset = 0;
|
int offset = 1;
|
||||||
uint8_t *rp_hdr = (uint8_t*)data + offset;
|
uint8_t *rp_hdr = (uint8_t*)data + offset;
|
||||||
|
data_len -= 1;
|
||||||
|
|
||||||
offset++;
|
|
||||||
rc = gprs_match_tlv(&rp_hdr, &data_len, 0x82, &value, &value_len);
|
rc = gprs_match_tlv(&rp_hdr, &data_len, 0x82, &value, &value_len);
|
||||||
|
|
||||||
if (rc <= 0)
|
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();
|
struct msgb *msg = gsm411_msgb_alloc();
|
||||||
uint8_t *rp_msg;
|
uint8_t *rp_msg;
|
||||||
rp_msg = (uint8_t *)msgb_put(msg, data_len - offset);
|
rp_msg = (uint8_t *)msgb_put(msg, data_len);
|
||||||
memcpy(rp_msg, data + offset, data_len - offset);
|
memcpy(rp_msg, data + offset, data_len);
|
||||||
|
|
||||||
struct gsm_subscriber *subscr;
|
struct gsm_subscriber *subscr;
|
||||||
subscr = subscr_get_by_extension(NULL, extension);
|
subscr = subscr_get_by_extension(NULL, extension);
|
||||||
|
|||||||
Reference in New Issue
Block a user