diff options
-rw-r--r-- | src/mm-sms.c | 18 |
1 files changed, 18 insertions, 0 deletions
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) { |