summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJannis Schönleber <joennlae@gmail.com>2023-11-17 16:24:07 +0100
committerGitHub <noreply@github.com>2023-11-17 17:24:07 +0200
commit9e87ef60e18d69338c5efea314aa7e718bf2040a (patch)
treecaf183b9de72721d07cf9449053e99c068a253cf
parentc7cce1246e248124117ae5bc058923e3ade95f11 (diff)
common : improve yaml log escaping (#4080)
* logging: improve escaping in yaml output * logging: include review feedback
-rw-r--r--common/common.cpp1
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;