sms-part: check UDH length vs available size before trying to read it
https://bugzilla.gnome.org/show_bug.cgi?id=698246
This commit is contained in:
@@ -779,6 +779,8 @@ mm_sms_part_new_from_binary_pdu (guint index,
|
|||||||
udhl = pdu[tp_user_data_offset] + 1;
|
udhl = pdu[tp_user_data_offset] + 1;
|
||||||
end = tp_user_data_offset + udhl;
|
end = tp_user_data_offset + udhl;
|
||||||
|
|
||||||
|
PDU_SIZE_CHECK (tp_user_data_offset + udhl, "cannot read UDH");
|
||||||
|
|
||||||
for (offset = tp_user_data_offset + 1; (offset + 1) < end;) {
|
for (offset = tp_user_data_offset + 1; (offset + 1) < end;) {
|
||||||
guint8 ie_id, ie_len;
|
guint8 ie_id, ie_len;
|
||||||
|
|
||||||
@@ -853,7 +855,9 @@ mm_sms_part_new_from_binary_pdu (guint index,
|
|||||||
{
|
{
|
||||||
GByteArray *raw;
|
GByteArray *raw;
|
||||||
|
|
||||||
mm_dbg ("Skipping SMS text: Unknown encoding");
|
mm_dbg ("Skipping SMS text: Unknown encoding (0x%02X)", user_data_encoding);
|
||||||
|
|
||||||
|
PDU_SIZE_CHECK (tp_user_data_offset + tp_user_data_size_bytes, "cannot read user data");
|
||||||
|
|
||||||
/* 8-bit encoding is usually binary data, and we have no idea what
|
/* 8-bit encoding is usually binary data, and we have no idea what
|
||||||
* actual encoding the data is in so we can't convert it.
|
* actual encoding the data is in so we can't convert it.
|
||||||
|
Reference in New Issue
Block a user