android: Escape backslashes in settings values

For usernames that use domain specifiers.
This commit is contained in:
Tobias Brunner
2017-07-03 10:27:51 +02:00
parent 59693d6c56
commit e5ec18009f
2 changed files with 3 additions and 2 deletions
@@ -118,7 +118,7 @@ public class SettingsWriter
*/
private String escapeValue(String value)
{
return value.replace("\"", "\\\"");
return value.replace("\\", "\\\\").replace("\"", "\\\"");
}
/**
@@ -95,7 +95,8 @@ public class SettingsWriterTest
SettingsWriter writer = new SettingsWriter();
writer.setValue("key", "val\"ue");
writer.setValue("nl", "val\nue");
assertEquals("serialized", "key=\"val\\\"ue\"\nnl=\"val\nue\"\n", writer.serialize());
writer.setValue("bs", "val\\ue");
assertEquals("serialized", "key=\"val\\\"ue\"\nnl=\"val\nue\"\nbs=\"val\\\\ue\"\n", writer.serialize());
}
@Test