Escape addresses in thread, recipient pref, and group databases

Fixes #6847
// FREEBIE
This commit is contained in:
Moxie Marlinspike
2017-08-02 11:04:10 -07:00
parent 3d29445373
commit aacf50316d
7 changed files with 139 additions and 83 deletions

View File

@@ -0,0 +1,21 @@
package org.thoughtcrime.securesms.util;
import java.util.regex.Pattern;
public class DelimiterUtil {
public static String escape(String value, char delimiter) {
return value.replace("" + delimiter, "\\" + delimiter);
}
public static String unescape(String value, char delimiter) {
return value.replace("\\" + delimiter, "" + delimiter);
}
public static String[] split(String value, char delimiter) {
String regex = "(?<!\\\\)" + Pattern.quote(delimiter + "");
return value.split(regex);
}
}

View File

@@ -72,20 +72,6 @@ public class Util {
public static Handler handler = new Handler(Looper.getMainLooper());
public static String join(List<Address> list, String delimiter) {
return join(list.toArray(new Address[0]), delimiter);
}
public static String join(Address[] list, String delimiter) {
List<String> stringList = new LinkedList<>();
for (Address address : list) {
stringList.add(address.serialize());
}
return join(stringList, delimiter);
}
public static String join(String[] list, String delimiter) {
return join(Arrays.asList(list), delimiter);
}