diff options
author | Sergey Kostanbaev <sergey.kostanbaev@gmail.com> | 2015-10-30 15:13:06 +0300 |
---|---|---|
committer | Ivan Kluchnikov <kluchnikovi@gmail.com> | 2017-02-07 17:29:16 +0300 |
commit | 3859958b438b40ed35642bf911276caaff0b99dc (patch) | |
tree | d17cf688e6c60905dc22072782718c3b2aada5f2 | |
parent | 451a183a4a41551f6d53b69d924551bd0c065580 (diff) |
store actual length of message
-rw-r--r-- | src/gsm/gsm0480.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 2ff27260..9995825c 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -537,7 +537,7 @@ static int parse_process_uss_req(const uint8_t *uss_req_data, uint16_t length, struct ss_request *req) { int rc = 0; - int num_chars; + int num_chars, nc; uint8_t dcs; @@ -555,12 +555,12 @@ static int parse_process_uss_req(const uint8_t *uss_req_data, uint16_t length, /* Prevent a mobile-originated buffer-overrun! */ if (num_chars > MAX_LEN_USSD_STRING) num_chars = MAX_LEN_USSD_STRING; - gsm_7bit_decode_n_ussd((char *)req->ussd_text, + nc = gsm_7bit_decode_n_ussd((char *)req->ussd_text, sizeof(req->ussd_text), &(uss_req_data[7]), num_chars); - req->ussd_text_language = 1; - req->ussd_text_len = num_chars; + req->ussd_text_language = 0x80; + req->ussd_text_len = nc; rc = 1; } else if (uss_req_data[5] == ASN1_OCTET_STRING_TAG) { num_chars = uss_req_data[6]; |