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
This commit is contained in:
Walter Doekes
2011-11-11 21:33:54 +00:00
parent a4365a8ae2
commit bac9ff62ef

View File

@@ -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,8 +5794,10 @@ 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 */
if (!in_data || !*in) {
ast_str_append(out, 0, xml ? "'" : "</td></tr>\n");
}
}
if (inobj) {
ast_str_append(out, 0, xml ? " /></response>\n" :