mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
json: just blatt weird characters in string.
Don't try to escape them. It's whack-a-mole and they shouldn't do it anyway. Suggested-by: Christian Decker Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
1ec19093f7
commit
8f17effeeb
1 changed files with 8 additions and 7 deletions
|
@ -412,16 +412,17 @@ void json_add_literal(struct json_result *result, const char *fieldname,
|
|||
|
||||
void json_add_string(struct json_result *result, const char *fieldname, const char *value)
|
||||
{
|
||||
char *escaped = tal_arr(result, char, strlen(value) * 2 + 1);
|
||||
size_t i, n;
|
||||
char *escaped = tal_strdup(result, value);
|
||||
size_t i;
|
||||
|
||||
json_start_member(result, fieldname);
|
||||
for (i = n = 0; value[i]; i++) {
|
||||
if (value[i] == '\\' || value[i] == '"')
|
||||
escaped[n++] = '\\';
|
||||
escaped[n++] = value[i];
|
||||
for (i = 0; escaped[i]; i++) {
|
||||
/* Replace any funny business. Better safe than accurate! */
|
||||
if (escaped[i] == '\\'
|
||||
|| escaped[i] == '"'
|
||||
|| !cisprint(escaped[i]))
|
||||
escaped[i] = '?';
|
||||
}
|
||||
escaped[n] = '\0';
|
||||
result_append_fmt(result, "\"%s\"", escaped);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue