summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalter Doekes <walter+asterisk@wjd.nu>2011-11-11 21:33:54 +0000
committerWalter Doekes <walter+asterisk@wjd.nu>2011-11-11 21:33:54 +0000
commitbac9ff62efb02e8b0560a76bd2293100fe0a4341 (patch)
tree3d9c0312f574cbd5e9c9a44f56fd85b02f850ee4
parenta4365a8ae2b699d3a0de549b480800db9dd0ec85 (diff)
Fix bad quoting of multiline mxml opaque_data that caused invalid xml.
The opaque_data was added and enclosed in single quotes, assuming it would be only a single line. The rest of the lines were appended after the closing quote. (closes issue ASTERISK-18852) Reported by: peep_ on IRC Review: https://reviewboard.asterisk.org/r/1577 ........ Merged revisions 344835 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 344836 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@344838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/manager.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/main/manager.c b/main/manager.c
index d07ceb83a..fd045e833 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -5755,9 +5755,10 @@ static void xml_translate(struct ast_str **out, char *in, struct ast_variable *g
}
if (in_data) {
- /* Process data field in Opaque mode */
- xml_copy_escape(out, val, 0); /* data field */
+ /* Process data field in Opaque mode. This is a
+ * followup, so we re-add line feeds. */
ast_str_append(out, 0, xml ? "\n" : "<br>\n");
+ xml_copy_escape(out, val, 0); /* data field */
continue;
}
@@ -5793,7 +5794,9 @@ static void xml_translate(struct ast_str **out, char *in, struct ast_variable *g
ao2_ref(vc, -1);
ast_str_append(out, 0, xml ? "='" : "</td><td>");
xml_copy_escape(out, val, 0); /* data field */
- ast_str_append(out, 0, xml ? "'" : "</td></tr>\n");
+ if (!in_data || !*in) {
+ ast_str_append(out, 0, xml ? "'" : "</td></tr>\n");
+ }
}
if (inobj) {