From 1e934f61467dfea6c3448942b107717a507b3b22 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Wed, 2 Aug 2017 11:08:38 -0700 Subject: [PATCH] Escape addresess in thread and recipient pref migrations For clients that have not yet migrated // FREEBIE --- .../securesms/database/DatabaseFactory.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/thoughtcrime/securesms/database/DatabaseFactory.java b/src/org/thoughtcrime/securesms/database/DatabaseFactory.java index 505e4b02eb..571ac70d04 100644 --- a/src/org/thoughtcrime/securesms/database/DatabaseFactory.java +++ b/src/org/thoughtcrime/securesms/database/DatabaseFactory.java @@ -44,6 +44,7 @@ import org.thoughtcrime.securesms.crypto.MasterSecretUtil; import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch; import org.thoughtcrime.securesms.notifications.MessageNotifier; import org.thoughtcrime.securesms.util.Base64; +import org.thoughtcrime.securesms.util.DelimiterUtil; import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; @@ -55,6 +56,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Arrays; import java.util.HashSet; import java.util.LinkedList; import java.util.List; @@ -919,7 +921,7 @@ public class DatabaseFactory { if (resolved != null && resolved.moveToFirst()) { String address = resolved.getString(0); - addresses[i] = numberMigrator.migrate(address); + addresses[i] = DelimiterUtil.escape(numberMigrator.migrate(address), ' '); } else if (recipientIds[i].equals("-1")) { addresses[i] = "Unknown"; } else { @@ -929,6 +931,8 @@ public class DatabaseFactory { if (resolved != null) resolved.close(); } + Arrays.sort(addresses); + ContentValues values = new ContentValues(1); values.put("recipient_ids", Util.join(addresses, " ")); db.update("thread", values, "_id = ?", new String[] {String.valueOf(threadId)}); @@ -990,7 +994,7 @@ public class DatabaseFactory { if (resolved != null && resolved.moveToFirst()) { String address = resolved.getString(0); - addresses[i] = numberMigrator.migrate(address); + addresses[i] = DelimiterUtil.escape(numberMigrator.migrate(address), ' '); } else if (recipientIds[i].equals("-1")) { addresses[i] = "Unknown"; } else { @@ -1000,6 +1004,8 @@ public class DatabaseFactory { if (resolved != null) resolved.close(); } + Arrays.sort(addresses); + ContentValues values = new ContentValues(1); values.put("recipient_ids", Util.join(addresses, " "));