From: Leonardo Taccari Date: Wed, 12 Dec 2018 15:05:45 +0000 (+0100) Subject: urlapi: distinguish possibly empty query X-Git-Tag: curl-7_64_0~123 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=305d25ed8a18bbe1fa59c4ec735de6a05ef27f45;p=curl urlapi: distinguish possibly empty query If just a `?' to indicate the query is passed always store a zero length query instead of having a NULL query. This permits to distinguish URL with trailing `?'. Fixes #3369 Closes #3370 --- diff --git a/lib/urlapi.c b/lib/urlapi.c index e68748818..6919ff1bd 100644 --- a/lib/urlapi.c +++ b/lib/urlapi.c @@ -864,7 +864,7 @@ static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags) return CURLUE_OUT_OF_MEMORY; } - if(query && query[0]) { + if(query) { u->query = strdup(query); if(!u->query) return CURLUE_OUT_OF_MEMORY; @@ -1071,8 +1071,8 @@ CURLUcode curl_url_get(CURLU *u, CURLUPart what, port ? port : "", (u->path && (u->path[0] != '/')) ? "/": "", u->path ? u->path : "/", - u->query? "?": "", - u->query? u->query : "", + (u->query && u->query[0]) ? "?": "", + (u->query && u->query[0]) ? u->query : "", u->fragment? "#": "", u->fragment? u->fragment : ""); }