diff options
author | Jannis Schönleber <joennlae@gmail.com> | 2023-11-17 16:24:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-17 17:24:07 +0200 |
commit | 9e87ef60e18d69338c5efea314aa7e718bf2040a (patch) | |
tree | caf183b9de72721d07cf9449053e99c068a253cf | |
parent | c7cce1246e248124117ae5bc058923e3ade95f11 (diff) |
common : improve yaml log escaping (#4080)
* logging: improve escaping in yaml output
* logging: include review feedback
-rw-r--r-- | common/common.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/common/common.cpp b/common/common.cpp index e119317d..7ee29f5b 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1194,6 +1194,7 @@ void dump_string_yaml_multiline(FILE * stream, const char * prop_name, const cha if (!data_str.empty() && (std::isspace(data_str[0]) || std::isspace(data_str.back()))) { data_str = std::regex_replace(data_str, std::regex("\n"), "\\n"); data_str = std::regex_replace(data_str, std::regex("\""), "\\\""); + data_str = std::regex_replace(data_str, std::regex(R"(\\[^n"])"), R"(\$&)"); data_str = "\"" + data_str + "\""; fprintf(stream, "%s: %s\n", prop_name, data_str.c_str()); return; |