From c8632256e439161b9593f766d2e9061e41a0cdd3 Mon Sep 17 00:00:00 2001 From: PeiYong Zhang <peiyongz@apache.org> Date: Thu, 4 Jul 2002 22:19:13 +0000 Subject: [PATCH] Bug# 10482: XMLUri crashes with empty fragment. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@173949 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/util/XMLUri.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/xercesc/util/XMLUri.cpp b/src/xercesc/util/XMLUri.cpp index 0a4fc81c1..e7500981c 100644 --- a/src/xercesc/util/XMLUri.cpp +++ b/src/xercesc/util/XMLUri.cpp @@ -794,13 +794,25 @@ void XMLUri::initializePath(const XMLCh* const uriSpec) } if (getFragment()) - { delete [] fFragment; - } - - fFragment = new XMLCh[index - start + 1]; - XMLString::subString(fFragment, uriSpec, start, index); + //make sure that there is something following the '#' + if (index > start) + { + fFragment = new XMLCh[index - start + 1]; + XMLString::subString(fFragment, uriSpec, start, index); + } + else + { + // RFC 2396, 4.0. URI Reference + // URI-reference = [absoulteURI | relativeURI] [# fragment] + // + // RFC 2396, 4.1. Fragment Identifier + // fragment = *uric + // + // empty fragment is valid + fFragment = 0; + } } } -- GitLab