diff options
author | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-03 17:32:37 +0000 |
---|---|---|
committer | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-03 17:32:37 +0000 |
commit | 4c46d7a5b0af9b7d320e709291b270ab7cf07e83 (patch) | |
tree | 54473f98f9e2cd5a30f3bc91c1f48b1e7f9a2c8f /third_party | |
parent | b764fc41e7c9d1bc20289de710918deab72968fe (diff) | |
download | chromium_src-4c46d7a5b0af9b7d320e709291b270ab7cf07e83.zip chromium_src-4c46d7a5b0af9b7d320e709291b270ab7cf07e83.tar.gz chromium_src-4c46d7a5b0af9b7d320e709291b270ab7cf07e83.tar.bz2 |
Fix XPointer bug.
BUG=125462
AUTHOR=asd@ut.ee
R=cevans@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10344022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135174 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/libxml/README.chromium | 1 | ||||
-rw-r--r-- | third_party/libxml/src/xpointer.c | 13 |
2 files changed, 4 insertions, 10 deletions
diff --git a/third_party/libxml/README.chromium b/third_party/libxml/README.chromium index b3b7b3c..f3dd98c 100644 --- a/third_party/libxml/README.chromium +++ b/third_party/libxml/README.chromium @@ -23,6 +23,7 @@ Modifications: - Import UTF-8 fix from upstream: http://git.gnome.org/browse/libxml2/commit/?id=0795348aeb86648723bc391e4d02e20631c10bca - Import XPath fix http://git.gnome.org/browse/libxml2/commit/xpath.c?id=2ddecc23862bab1a9a9e51e097aefc92ec305e28 - Merge clang warning fix http://git.gnome.org/browse/libxml2/commit/?id=aae48e64dfbf2b46b157a4c1857e30645116388f +- Add a fix for proper escaping of xpointer expressions, commit upstream is pending. To import a new snapshot of libxml: diff --git a/third_party/libxml/src/xpointer.c b/third_party/libxml/src/xpointer.c index 7a42d02..ae5dd08 100644 --- a/third_party/libxml/src/xpointer.c +++ b/third_party/libxml/src/xpointer.c @@ -1007,21 +1007,14 @@ xmlXPtrEvalXPtrPart(xmlXPathParserContextPtr ctxt, xmlChar *name) { NEXT; break; } - *cur++ = CUR; } else if (CUR == '(') { level++; - *cur++ = CUR; } else if (CUR == '^') { - NEXT; - if ((CUR == ')') || (CUR == '(') || (CUR == '^')) { - *cur++ = CUR; - } else { - *cur++ = '^'; - *cur++ = CUR; + if ((NXT(1) == ')') || (NXT(1) == '(') || (NXT(1) == '^')) { + NEXT; } - } else { - *cur++ = CUR; } + *cur++ = CUR; NEXT; } *cur = 0; |