Merged revisions 378935 via svnmerge from
authorAutomerge script <automerge@asterisk.org>
Sat, 12 Jan 2013 07:21:01 +0000 (07:21 +0000)
committerAutomerge script <automerge@asterisk.org>
Sat, 12 Jan 2013 07:21:01 +0000 (07:21 +0000)
commitf7f7850f7a3a85df4174b5b736eea2235fc4e6eb
tree6e3238a3a2b71d15cca2b36a13c099ee57b5a3d2
parent2c1720b4f7567e0df5b0842b64c79bcf382fc51a
Merged revisions 378935 via svnmerge from
file:///srv/subversion/repos/asterisk/trunk

................
  r378935 | dlee | 2013-01-12 00:43:37 -0600 (Sat, 12 Jan 2013) | 41 lines

  Fix XML encoding of 'identity display' in NOTIFY messages.

  XML encoding in chan_sip is accomplished by naively building the XML
  directly from strings. While this usually works, it fails to take into
  account escaping the reserved characters in XML.

  This patch adds an 'ast_xml_escape' function, which works similarly to
  'ast_uri_encode'. This is used to properly escape the local_display
  attribute in XML formatted NOTIFY messages.

  Several things to note:
   * The Right Thing(TM) to do would probably be to replace the
     ast_build_string stuff with building an ast_xml_doc. That's a much
     bigger change, and out of scope for the original ticket, so I
     refrained myself.
   * It is with great sadness that I wrote my own ast_xml_escape
     function. There's one in libxml2, but it's knee-deep in
     libxml2-ness, and not easily used to one-off escape a
     string.
   * I only escaped the string we know is causing problems
     (local_display). At least some of the other strings are
     URI-encoded, which should be XML safe. Rather than figuring out
     what's safe and escaping what's not, it would be much cleaner to
     simply build an ast_xml_doc for the messages and let the XML
     library do the XML escaping. Like I said, that's out of scope.

  (closes issue ABE-2902)
  Reported by: Guenther Kelleter
  Tested by: Guenther Kelleter
  Review: http://reviewboard.digium.internal/r/365/

  ........

  Merged revision 378919 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
  ........

  Merged revisions 378933 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........

  Merged revisions 378934 from http://svn.asterisk.org/svn/asterisk/branches/11
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@378946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c
include/asterisk/utils.h
main/utils.c
tests/test_xml_escape.c [new file with mode: 0644]