gsm0480: skip length check for 'RELEASE COMPLETE' message

According to GSM 04.80 Section 2.5 'Release complete' Table 2.5,
the 'RELEASE COMPLETE' message payload is optional, so let's drop
the length check in gsm0480_decode_ss_request() for this type.

Change-Id: I63b7f8ce403169a9dbdbdb031db16693de2196d6
This commit is contained in:
Sergey Kostanbaev 2015-10-28 13:29:09 +03:00 committed by Harald Welte
parent d00a43f148
commit 04ee9c04f4
1 changed files with 10 additions and 3 deletions

View File

@ -249,11 +249,18 @@ int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len,
int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len,
struct ss_request *req)
{
uint8_t msg_type = hdr->msg_type & 0x3F;
int rc = 0;
if (len < sizeof(*hdr) + 2) {
LOGP(0, LOGL_DEBUG, "SS Request is too short.\n");
return 0;
/**
* GSM 04.80 Section 2.5 'Release complete' Table 2.5
* payload is optional for 'RELEASE COMPLETE' message
*/
if (msg_type != GSM0480_MTYPE_RELEASE_COMPLETE) {
if (len < sizeof(*hdr) + 2) {
LOGP(0, LOGL_DEBUG, "SS Request is too short.\n");
return 0;
}
}
if (gsm48_hdr_pdisc(hdr) == GSM48_PDISC_NC_SS) {