diff options
-rw-r--r-- | openbsc/src/libmsc/smpp_openbsc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c index ff5ab400e..b17222fb4 100644 --- a/openbsc/src/libmsc/smpp_openbsc.c +++ b/openbsc/src/libmsc/smpp_openbsc.c @@ -114,12 +114,13 @@ static int submit_to_sms(struct gsm_sms **psms, struct gsm_network *net, } sms_msg = t->value.octet; sms_msg_len = t->length; - } else if (submit->sm_length) { + } else if (submit->sm_length > 0 && submit->sm_length < 255) { sms_msg = submit->short_message; sms_msg_len = submit->sm_length; } else { - sms_msg = NULL; - sms_msg_len = 0; + LOGP(DLSMS, LOGL_ERROR, + "SMPP neither message payload nor valid sm_length.\n"); + return ESME_RINVPARLEN; } sms = sms_alloc(); |