From 6284737249aca9d65d721c746bb2b3750a677ebe Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 14 Sep 2012 13:12:02 +0200 Subject: [PATCH] sms: don't allow more than 255 parts --- src/mm-sms.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/mm-sms.c b/src/mm-sms.c index 76cc74e5..b0f9a11a 100644 --- a/src/mm-sms.c +++ b/src/mm-sms.c @@ -123,6 +123,24 @@ generate_submit_pdus (MMSms *self, g_assert (split_text != NULL || split_data != NULL); g_assert (!(split_text != NULL && split_data != NULL)); + if (n_parts > 255) { + if (split_text) + g_strfreev (split_text); + else if (split_data) { + guint i = 0; + + while (split_data[i]) + g_byte_array_unref (split_data[i++]); + g_free (split_data); + } + + g_set_error (error, + MM_CORE_ERROR, + MM_CORE_ERROR_TOO_MANY, + "Cannot generate PDUs: Text or Data too long"); + return FALSE; + } + /* Loop text/data chunks */ i = 0; while (1) {