[libxml2] Problem resolving relative URIs



commit 3daee3f159a1f962278e6f92572b7749b2b2babb
Author: Daniel Veillard <veillard redhat com>
Date:   Mon Aug 28 21:12:14 2017 +0200

    Problem resolving relative URIs
    
    Raised by Matthias Pigulla <mp webfactory de>
    
    In a nutshell we had that bug on URI composition after some fixes in
    the area of localhost empty shortcuts :
    
    ./testURI --base file:///some/where file
    
    Without patch: file:/some/file
    With patch: file:///some/file

 uri.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/uri.c b/uri.c
index 3b627e8..62bedd1 100644
--- a/uri.c
+++ b/uri.c
@@ -1961,8 +1961,9 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) {
            res->scheme = xmlMemStrdup(bas->scheme);
        if (bas->authority != NULL)
            res->authority = xmlMemStrdup(bas->authority);
-       else if (bas->server != NULL) {
-           res->server = xmlMemStrdup(bas->server);
+       else if ((bas->server != NULL) || (bas->port == -1)) {
+           if (bas->server != NULL)
+               res->server = xmlMemStrdup(bas->server);
            if (bas->user != NULL)
                res->user = xmlMemStrdup(bas->user);
            res->port = bas->port;
@@ -2024,8 +2025,9 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) {
     }
     if (bas->authority != NULL)
        res->authority = xmlMemStrdup(bas->authority);
-    else if (bas->server != NULL) {
-       res->server = xmlMemStrdup(bas->server);
+    else if ((bas->server != NULL) || (bas->port == -1)) {
+       if (bas->server != NULL)
+           res->server = xmlMemStrdup(bas->server);
        if (bas->user != NULL)
            res->user = xmlMemStrdup(bas->user);
        res->port = bas->port;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]