Merge "Handle invalid destination address gracefully" into oc-dr1-dev

am: 93ea43386e

Change-Id: I0e36a295ca481bb5c9b0fc77cb0d2e56d9cbfd0c
This commit is contained in:
Chen Xu
2017-06-23 21:43:59 +00:00
committed by android-build-merger

View File

@@ -278,6 +278,10 @@ public class SmsMessage extends SmsMessageBase {
scAddress, destinationAddress, mtiByte, scAddress, destinationAddress, mtiByte,
statusReportRequested, ret); statusReportRequested, ret);
// Skip encoding pdu if error occurs when create pdu head and the error will be handled
// properly later on encodedMessage sanity check.
if (bo == null) return ret;
// User Data (and length) // User Data (and length)
byte[] userData; byte[] userData;
try { try {
@@ -420,6 +424,9 @@ public class SmsMessage extends SmsMessageBase {
scAddress, destinationAddress, (byte) 0x41, // MTI = SMS-SUBMIT, scAddress, destinationAddress, (byte) 0x41, // MTI = SMS-SUBMIT,
// TP-UDHI = true // TP-UDHI = true
statusReportRequested, ret); statusReportRequested, ret);
// Skip encoding pdu if error occurs when create pdu head and the error will be handled
// properly later on encodedMessage sanity check.
if (bo == null) return ret;
// TP-Data-Coding-Scheme // TP-Data-Coding-Scheme
// No class, 8 bit data // No class, 8 bit data
@@ -451,7 +458,7 @@ public class SmsMessage extends SmsMessageBase {
* @param destinationAddress the address of the destination for the message * @param destinationAddress the address of the destination for the message
* @param mtiByte * @param mtiByte
* @param ret <code>SubmitPdu</code> containing the encoded SC * @param ret <code>SubmitPdu</code> containing the encoded SC
* address, if applicable, and the encoded message * address, if applicable, and the encoded message. Returns null on encode error.
*/ */
private static ByteArrayOutputStream getSubmitPduHead( private static ByteArrayOutputStream getSubmitPduHead(
String scAddress, String destinationAddress, byte mtiByte, String scAddress, String destinationAddress, byte mtiByte,
@@ -482,6 +489,9 @@ public class SmsMessage extends SmsMessageBase {
daBytes = PhoneNumberUtils.networkPortionToCalledPartyBCD(destinationAddress); daBytes = PhoneNumberUtils.networkPortionToCalledPartyBCD(destinationAddress);
// return empty pduHead for invalid destination address
if (daBytes == null) return null;
// destination address length in BCD digits, ignoring TON byte and pad // destination address length in BCD digits, ignoring TON byte and pad
// TODO Should be better. // TODO Should be better.
bo.write((daBytes.length - 1) * 2 bo.write((daBytes.length - 1) * 2