Skip to content
Snippets Groups Projects
Commit e37bb58f authored by Jake Klinker's avatar Jake Klinker
Browse files

Trim recipient addresses that are unreasonably long.

This ensures that bad input does not affect the db - the fallback is a reasonable one where we just launch the new conversation screen and have the user select the recipient.

TESTED=manually confirmed that I could no longer repro b/278556945 after this change.
BUG=278556945

Change-Id: I705a304a92cb46b20d916c6f5c2db81e6fa84f06
parent 0d545214
No related branches found
No related tags found
No related merge requests found
......@@ -37,6 +37,8 @@ import com.android.messaging.util.UriUtil;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
/**
* Launches ConversationActivity for sending a message to, or viewing messages from, a specific
......@@ -46,6 +48,7 @@ import java.net.URLDecoder;
*/
public class LaunchConversationActivity extends Activity implements
LaunchConversationData.LaunchConversationDataListener {
private static final int MAX_RECIPIENT_LENGTH = 100;
static final String SMS_BODY = "sms_body";
static final String ADDRESS = "address";
final Binding<LaunchConversationData> mBinding = BindingBase.createBinding(this);
......@@ -76,6 +79,9 @@ public class LaunchConversationActivity extends Activity implements
recipients = new String[] { intent.getStringExtra(Intent.EXTRA_EMAIL) };
}
}
if (recipients != null) {
recipients = trimInvalidRecipients(recipients);
}
mSmsBody = intent.getStringExtra(SMS_BODY);
if (TextUtils.isEmpty(mSmsBody)) {
// Used by intents sent from the web YouTube (and perhaps others).
......@@ -103,6 +109,20 @@ public class LaunchConversationActivity extends Activity implements
finish();
}
private String[] trimInvalidRecipients(String[] recipients) {
List<String> trimmedRecipients = new ArrayList<>();
for (String recipient : recipients) {
if (recipient.length() < MAX_RECIPIENT_LENGTH) {
trimmedRecipients.add(recipient);
}
}
if (trimmedRecipients.size() > 0) {
return trimmedRecipients.toArray(new String[0]);
} else {
return null;
}
}
private String getBody(final Uri uri) {
if (uri == null) {
return null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment