diff options
author | Curl Upstream <curl-library@lists.haxx.se> | 2022-12-21 07:00:59 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-01-27 20:58:30 (GMT) |
commit | dac458ddbf2b48168779821654a7e69cbd828c14 (patch) | |
tree | 8191fa2b92ceb3469c8ac5878b4ded3112f5f16c /lib/curl_path.c | |
parent | ec122fff08ab9a8e56fb90126ecedb99c759011b (diff) | |
download | CMake-dac458ddbf2b48168779821654a7e69cbd828c14.zip CMake-dac458ddbf2b48168779821654a7e69cbd828c14.tar.gz CMake-dac458ddbf2b48168779821654a7e69cbd828c14.tar.bz2 |
curl 2022-12-21 (c12fb3dd)
Code extracted from:
https://github.com/curl/curl.git
at commit c12fb3ddaf48e709a7a4deaa55ec485e4df163ee (curl-7_87_0).
Diffstat (limited to 'lib/curl_path.c')
-rw-r--r-- | lib/curl_path.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/curl_path.c b/lib/curl_path.c index b55e830..f00e3ee 100644 --- a/lib/curl_path.c +++ b/lib/curl_path.c @@ -71,10 +71,14 @@ CURLcode Curl_getworkingpath(struct Curl_easy *data, /* It is referenced to the home directory, so strip the leading '/' */ memcpy(real_path, homedir, homelen); - real_path[homelen] = '/'; - real_path[homelen + 1] = '\0'; + /* Only add a trailing '/' if homedir does not end with one */ + if(homelen == 0 || real_path[homelen - 1] != '/') { + real_path[homelen] = '/'; + homelen++; + real_path[homelen] = '\0'; + } if(working_path_len > 3) { - memcpy(real_path + homelen + 1, working_path + 3, + memcpy(real_path + homelen, working_path + 3, 1 + working_path_len -3); } } @@ -148,15 +152,12 @@ CURLcode Curl_get_pathname(const char **cpp, char **path, char *homedir) break; } if(cp[i] == '\0') { /* End of string */ - /*error("Unterminated quote");*/ goto fail; } if(cp[i] == '\\') { /* Escaped characters */ i++; if(cp[i] != '\'' && cp[i] != '\"' && cp[i] != '\\') { - /*error("Bad escaped character '\\%c'", - cp[i]);*/ goto fail; } } @@ -164,7 +165,6 @@ CURLcode Curl_get_pathname(const char **cpp, char **path, char *homedir) } if(j == 0) { - /*error("Empty quotes");*/ goto fail; } *cpp = cp + i + strspn(cp + i, WHITESPACE); |