gsm0480: fix: don't overwrite the data of RELEASE_COMPLETE

According to the 3GPP TS 04.80, table 2.5 'Release complete', a
RELEASE_COMPLETE message may containg optional FACILITY element.

Meanwhile, the 0xff byte is used to indicate that there is no
decoded message (legacy field). Let's avoid overwriting of
a decoded message.

Change-Id: I0c85292222749a48ca0c4b2e93f4fa2d61468c18
This commit is contained in:
Vadim Yanitskiy 2018-04-04 19:25:38 +07:00 committed by Harald Welte
parent 07f075d197
commit fb5da89579
1 changed files with 6 additions and 2 deletions

View File

@ -296,11 +296,15 @@ static int parse_ss(const struct gsm48_hdr *hdr, uint16_t len, struct ss_request
case GSM0480_MTYPE_RELEASE_COMPLETE:
LOGP(0, LOGL_DEBUG, "SS Release Complete\n");
/**
* Indicates that there is no decoded message.
* To be overwriten by the message otherwise.
*/
req->ussd_text[0] = 0xFF;
/* Parse optional Cause and/or Facility data */
if (len >= 2)
rc &= parse_ss_info_elements(&hdr->data[0], len, req);
req->ussd_text[0] = 0xFF;
break;
case GSM0480_MTYPE_REGISTER:
rc &= parse_ss_info_elements(&hdr->data[0], len, req);