aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Kostanbaev <sergey.kostanbaev@gmail.com>2015-10-30 15:13:06 +0300
committerIvan Kluchnikov <kluchnikovi@gmail.com>2017-02-07 17:29:16 +0300
commit3859958b438b40ed35642bf911276caaff0b99dc (patch)
treed17cf688e6c60905dc22072782718c3b2aada5f2
parent451a183a4a41551f6d53b69d924551bd0c065580 (diff)
store actual length of message
-rw-r--r--src/gsm/gsm0480.c8
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];