curl/lib
Daniel Stenberg e062043433
url: normalize CURLINFO_EFFECTIVE_URL
The URL extracted with CURLINFO_EFFECTIVE_URL was returned as given as
input in most cases, which made it not get a scheme prefixed like before
if the URL was given without one, and it didn't remove dotdot sequences
etc.

Added test case 1907 to verify that this now works as intended and as
before 7.62.0.

Regression introduced in 7.62.0

Reported-by: Christophe Dervieux
Fixes #4491
Closes #4493
2019-10-16 14:10:55 +02:00
..
vauth vauth: The parameter 'status' must be surrounded by parentheses 2019-09-23 22:44:01 +02:00
vquic ngtcp2: adapt to API change 2019-10-04 10:31:36 +02:00
vssh lib: silence conversion warnings 2019-10-01 10:47:37 +02:00
vtls gskit: use the generic Curl_socketpair 2019-10-10 11:04:38 +02:00
.gitattributes
.gitignore
altsvc.c altsvc: accept quoted ma and persist values 2019-09-30 16:35:12 +02:00
altsvc.h alt-svc: add protocol version selection masking 2019-08-08 09:10:29 +02:00
amigaos.c configure: add --with-amissl 2019-03-15 10:22:42 +01:00
amigaos.h configure: add --with-amissl 2019-03-15 10:22:42 +01:00
arpa_telnet.h travis: add build for "configure --disable-verbose" 2018-10-18 14:51:49 +02:00
asyn-ares.c cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
asyn-thread.c asyn-thread: make use of Curl_socketpair() where available 2019-10-10 11:04:38 +02:00
asyn.h cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
base64.c base64: check for SSH, not specific SSH backends 2019-08-17 16:57:56 +02:00
checksrc.pl checksrc: fix uninitialized variable warning 2019-10-01 10:47:45 +02:00
CMakeLists.txt CMake: Improve config installation 2018-10-01 16:16:29 -04:00
config-amigaos.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-dos.h whitespace fixes 2018-09-23 22:24:02 +00:00
config-mac.h
config-os400.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-plan9.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-riscos.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-symbian.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-tpf.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-vxworks.h build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
config-win32.h url: Load if_nametoindex() dynamically from iphlpapi.dll on Windows 2019-05-29 07:19:20 +01:00
config-win32ce.h build: remove HAVE_LIMITS_H check 2018-01-05 23:34:30 -05:00
conncache.c conncache: Remove the DEBUGASSERT on length check 2019-05-29 22:07:43 +01:00
conncache.h conncache: make "bundles" per host name when doing proxy tunnels 2019-05-28 16:23:59 +02:00
connect.c connect: silence sign-compare warning 2019-10-13 22:09:59 +02:00
connect.h Curl_addr2string: take an addrlen argument too 2019-08-31 11:41:56 +02:00
content_encoding.c content_encoding: accept up to 4 unknown trailer bytes after raw deflate data 2018-07-12 22:46:15 +02:00
content_encoding.h HTTP: support multiple Content-Encodings 2017-11-05 15:09:48 +01:00
cookie.c cookies: change argument type for Curl_flush_cookies 2019-10-03 22:56:28 +02:00
cookie.h cookies: change argument type for Curl_flush_cookies 2019-10-03 22:56:28 +02:00
curl_addrinfo.c memdebug: log pointer before freeing its data 2019-03-12 21:45:03 +01:00
curl_addrinfo.h memdebug: make debug-specific functions use curl_dbg_ prefix 2019-03-08 23:21:21 +01:00
curl_base64.h
curl_config.h.cmake build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
curl_ctype.c URL: fix ASCII dependency in strcpy_url and strlen_url 2018-05-03 15:19:20 +02:00
curl_ctype.h URL: fix ASCII dependency in strcpy_url and strlen_url 2018-05-03 15:19:20 +02:00
curl_des.c
curl_des.h
curl_endian.c cleanup: make local functions static 2019-02-10 18:38:57 +01:00
curl_endian.h headers: Remove no longer exported functions 2019-07-10 19:26:40 +02:00
curl_fnmatch.c cleanup: remove FIXME and TODO comments 2019-05-16 09:16:56 +02:00
curl_fnmatch.h
curl_get_line.c altsvc: Fix building with cookies disables 2019-04-20 22:46:21 +02:00
curl_get_line.h altsvc: Fix building with cookies disables 2019-04-20 22:46:21 +02:00
curl_gethostname.c
curl_gethostname.h
curl_gssapi.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
curl_gssapi.h gssapi: fix deprecated header warnings 2019-02-14 08:38:43 +01:00
curl_hmac.h
curl_ldap.h whitespace fixes 2018-09-23 22:24:02 +00:00
curl_md4.h md4: Use our own MD4 implementation when no crypto libraries are available 2019-08-04 18:01:29 +01:00
curl_md5.h md5: Update the function signature following d84da52d 2019-04-16 00:08:42 +01:00
curl_memory.h cleanup: remove FIXME and TODO comments 2019-05-16 09:16:56 +02:00
curl_memrchr.c Curl_memchr: zero length input can't match 2018-04-24 08:03:23 +02:00
curl_memrchr.h
curl_multibyte.c curl_multibyte: fix a malloc overcalculation 2018-11-06 03:11:05 -05:00
curl_multibyte.h
curl_ntlm_core.c md4: Use our own MD4 implementation when no crypto libraries are available 2019-08-04 18:01:29 +01:00
curl_ntlm_core.h ntlm: Support the NT response in the type-3 when OpenSSL doesn't include MD4 2019-04-23 20:00:33 +01:00
curl_ntlm_wb.c http_ntlm_wb: Handle auth for only a single request 2019-05-18 19:01:11 +01:00
curl_ntlm_wb.h http_ntlm_wb: Move the type-2 message processing into a dedicated function 2019-05-16 00:03:30 +01:00
curl_path.c scp: fix directory name length used in memcpy 2019-08-24 18:47:56 +02:00
curl_path.h headers: end all headers with guard comment 2018-10-23 10:02:24 +02:00
curl_printf.h snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
curl_range.c Curl_range: fix FTP-only and FILE-only builds 2018-03-11 20:33:04 +01:00
curl_range.h Curl_range: commonize FTP and FILE range handling 2018-01-30 17:23:26 +01:00
curl_rtmp.c urldata: avoid 'generic', use dedicated pointers 2019-09-03 23:00:51 +02:00
curl_rtmp.h
curl_sasl.c sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID 2019-08-06 11:38:20 -04:00
curl_sasl.h
curl_sec.h
curl_setup_once.h whitespace fixes 2018-09-23 22:24:02 +00:00
curl_setup.h cleanup: remove DOT_CHAR completely 2019-08-20 23:07:59 +02:00
curl_sha256.h auth: add support for RFC7616 - HTTP Digest access authentication 2017-10-28 16:32:43 +02:00
curl_sspi.c comment: Fix multiple typos in function parameters 2018-10-03 10:27:27 +02:00
curl_sspi.h
curl_threads.c curl_threads: fix classic MinGW compile break 2018-09-27 09:13:20 +02:00
curl_threads.h Windows: fixes for MinGW targeting Windows Vista 2018-10-09 08:33:45 +02:00
curlx.h snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
dict.c urldata: simplify bytecounters 2019-03-01 17:30:34 +01:00
dict.h
doh.c doh: allow only http and https in debug mode 2019-09-23 22:38:23 +02:00
doh.h cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
dotdot.c Curl_dedotdotify(): always nul terminate returned string. 2018-09-24 07:48:41 +02:00
dotdot.h headers: end all headers with guard comment 2018-10-23 10:02:24 +02:00
easy.c easy: part of conditional expression is always true: !result 2019-09-20 08:07:20 +02:00
easyif.h whitespace fixes 2018-09-23 22:24:02 +00:00
escape.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
escape.h whitespace fixes 2018-09-23 22:24:02 +00:00
file.c file: fix "Checking if unsigned variable 'readcount' is less than zero." 2019-03-12 21:46:11 +01:00
file.h whitespace fixes 2018-09-23 22:24:02 +00:00
fileinfo.c wildcard: disable from build when FTP isn't present 2019-05-13 08:17:09 +02:00
fileinfo.h ftplistparser: keep state between invokes 2018-04-24 14:23:20 +02:00
firefox-db2pem.sh whitespace fixes 2018-09-23 22:24:02 +00:00
formdata.c mime: acknowledge CURL_DISABLE_MIME 2019-05-13 08:17:09 +02:00
formdata.h mime: acknowledge CURL_DISABLE_MIME 2019-05-13 08:17:09 +02:00
ftp.c FTP: url-decode path before evaluation 2019-09-27 08:29:54 +02:00
ftp.h FTP: url-decode path before evaluation 2019-09-27 08:29:54 +02:00
ftplistparser.c ftplistparser: fix LGTM alert "Empty block without comment" 2019-04-05 12:56:18 +02:00
ftplistparser.h
getenv.c getenv: support up to 4K environment variable contents on windows 2019-07-31 08:20:59 +02:00
getinfo.c CURLINFO_RETRY_AFTER: parse the Retry-After header value 2019-08-07 14:45:39 +02:00
getinfo.h
gopher.c gopher: remove check for path == NULL 2019-03-05 08:01:50 +01:00
gopher.h
hash.c cppcheck: fix warnings 2018-06-11 11:14:48 +02:00
hash.h multi: fix the transfer hashes in the socket hash entries 2019-06-12 12:31:23 +02:00
hmac.c checksrc: make sure sizeof() is used *with* parentheses 2018-05-21 23:21:47 +02:00
hostasyn.c dns: release sharelock as soon as possible 2019-02-11 13:34:11 +01:00
hostcheck.c lib: reduce variable scopes 2019-05-20 08:51:11 +02:00
hostcheck.h whitespace fixes 2018-09-23 22:24:02 +00:00
hostip4.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
hostip6.c HTTP3: initial (experimental) support 2019-07-21 23:49:03 +02:00
hostip.c lib: silence conversion warnings 2019-10-01 10:47:37 +02:00
hostip.h timediff: make it 64 bit (if possible) even with 32 bit time_t 2019-08-01 07:43:24 +02:00
hostsyn.c resolvers: only include anything if needed 2017-10-27 13:20:13 +02:00
http2.c http2: move state-init from creation to pre-transfer 2019-10-03 22:55:42 +02:00
http2.h headers: Remove no longer exported functions 2019-07-10 19:26:40 +02:00
http_chunks.c chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error 2019-10-02 07:46:05 +02:00
http_chunks.h chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error 2019-10-02 07:46:05 +02:00
http_digest.c auth: Rename the various authentication clean up functions 2019-05-12 18:37:00 +01:00
http_digest.h auth: Rename the various authentication clean up functions 2019-05-12 18:37:00 +01:00
http_negotiate.c vauth: return CURLE_AUTH_ERROR on gss_init_sec_context() failure 2019-08-26 13:43:21 +02:00
http_negotiate.h auth: Rename the various authentication clean up functions 2019-05-12 18:37:00 +01:00
http_ntlm.c http_ntlm: Move the NTLM state out of the ntlmdata structure 2019-05-15 00:31:45 +01:00
http_ntlm.h auth: Rename the various authentication clean up functions 2019-05-12 18:37:00 +01:00
http_proxy.c chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error 2019-10-02 07:46:05 +02:00
http_proxy.h
http.c cookies: using a share with cookies shouldn't enable the cookie engine 2019-09-28 18:10:43 +02:00
http.h chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error 2019-10-02 07:46:05 +02:00
idn_win32.c
if2ip.c CURLOPT_ADDRESS_SCOPE: fix range check and more 2019-04-13 11:18:55 +02:00
if2ip.h CURLOPT_ADDRESS_SCOPE: fix range check and more 2019-04-13 11:18:55 +02:00
imap.c imap: merged two case-branches performing the same action 2019-09-20 08:07:25 +02:00
imap.h imap: change from "FETCH" to "UID FETCH" 2018-09-06 10:57:48 +02:00
inet_ntop.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
inet_ntop.h whitespace fixes 2018-09-23 22:24:02 +00:00
inet_pton.c lib: reduce variable scopes 2019-05-20 08:51:11 +02:00
inet_pton.h whitespace fixes 2018-09-23 22:24:02 +00:00
krb5.c lib: Use UTF-8 encoding in comments 2019-07-06 23:25:20 -04:00
ldap.c ldap: fix OOM error on missing query string 2019-10-05 19:47:31 -04:00
libcurl.plist
libcurl.rc (lib)curl.rc: fixup for minor bugs 2018-12-10 00:10:04 +01:00
libcurl.vers.in
llist.c Curl_llist_remove: fix potential NULL pointer deref 2017-11-21 09:02:40 +01:00
llist.h whitespace fixes 2018-09-23 22:24:02 +00:00
Makefile.am vssh: create directory for SSH backend code 2019-08-17 16:57:55 +02:00
makefile.amiga whitespace fixes 2018-09-23 22:24:02 +00:00
makefile.dj whitespace fixes 2018-09-23 22:24:02 +00:00
Makefile.inc socketpair: an implemention for Windows and more 2019-10-10 11:04:38 +02:00
Makefile.m32 whitespace fixes 2018-09-23 22:24:02 +00:00
Makefile.netware build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines 2019-10-05 19:18:30 -04:00
Makefile.vxworks
Makefile.Watcom openssl: Remove SSLEAY leftovers 2018-11-17 21:36:10 +01:00
md4.c md4: Use our own MD4 implementation when no crypto libraries are available 2019-08-04 18:01:29 +01:00
md5.c lib: reduce variable scopes 2019-05-20 08:51:11 +02:00
memdebug.c lib: reduce variable scopes 2019-05-20 08:51:11 +02:00
memdebug.h memdebug: make debug-specific functions use curl_dbg_ prefix 2019-03-08 23:21:21 +01:00
mime.c mime: make Curl_mime_duppart() assert if called without valid dst 2019-09-20 08:07:31 +02:00
mime.h mime: when disabled, avoid C99 macro 2019-09-18 08:08:41 +02:00
mk-ca-bundle.pl mk-ca-bundle.pl: make -u delete certdata.txt if found not changed 2018-06-14 00:02:20 +02:00
mk-ca-bundle.vbs spelling fixes 2018-02-23 23:29:01 +00:00
mprintf.c mprintf: avoid unsigned integer overflow warning 2018-11-02 11:07:04 +01:00
multi.c CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt 2019-10-02 07:47:48 +02:00
multihandle.h CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt 2019-10-02 07:47:48 +02:00
multiif.h CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt 2019-10-02 07:47:48 +02:00
netrc.c netrc: part of conditional expression is always true: !done 2019-09-20 08:07:18 +02:00
netrc.h netrc: CURL_DISABLE_NETRC 2019-05-17 23:24:34 +02:00
non-ascii.c non-ascii.c: fix typos in comments 2019-02-12 10:24:29 +01:00
non-ascii.h
nonblock.c nonblock: fix unused parameter warning 2018-10-14 21:07:45 +02:00
nonblock.h whitespace fixes 2018-09-23 22:24:02 +00:00
nwlib.c memory: ensure to check allocation results 2018-10-03 23:45:38 +02:00
nwos.c
openldap.c urldata: avoid 'generic', use dedicated pointers 2019-09-03 23:00:51 +02:00
parsedate.c parsedate: still provide the name arrays when disabled 2019-09-13 08:25:14 +02:00
parsedate.h whitespace fixes 2018-09-23 22:24:02 +00:00
pingpong.c timediff: make it 64 bit (if possible) even with 32 bit time_t 2019-08-01 07:43:24 +02:00
pingpong.h cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
pop3.c cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
pop3.h
progress.c timediff: make it 64 bit (if possible) even with 32 bit time_t 2019-08-01 07:43:24 +02:00
progress.h whitespace fixes 2018-09-23 22:24:02 +00:00
psl.c psl: use latest psl and refresh it periodically 2018-05-28 20:37:14 +02:00
psl.h psl: use latest psl and refresh it periodically 2018-05-28 20:37:14 +02:00
quic.h ngtcp2: accept upload via callback 2019-08-23 22:33:29 +02:00
rand.c PolarSSL: deprecate support step 1. Removed from configure. 2019-05-22 10:00:56 +02:00
rand.h PolarSSL: deprecate support step 1. Removed from configure. 2019-05-22 10:00:56 +02:00
rtsp.c cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
rtsp.h whitespace fixes 2018-09-23 22:24:02 +00:00
security.c security: silence conversion warning 2019-10-13 22:10:12 +02:00
select.c cppcheck: fix warnings 2018-06-11 11:14:48 +02:00
select.h timediff: make it 64 bit (if possible) even with 32 bit time_t 2019-08-01 07:43:24 +02:00
sendf.c WRITEFUNCTION: add missing set_in_callback around callback 2019-05-05 11:09:30 +02:00
sendf.h travis: add build for "configure --disable-verbose" 2018-10-18 14:51:49 +02:00
setopt.c cookies: change argument type for Curl_flush_cookies 2019-10-03 22:56:28 +02:00
setopt.h os400: make vsetopt() non-static as Curl_vsetopt() for os400 support. 2019-06-16 01:05:53 +02:00
setup-os400.h os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr, 2019-09-24 13:39:22 +02:00
setup-vms.h
sha256.c http: fix for tiny "HTTP/0.9" response 2018-08-13 23:16:01 +02:00
share.c psl: use latest psl and refresh it periodically 2018-05-28 20:37:14 +02:00
share.h psl: use latest psl and refresh it periodically 2018-05-28 20:37:14 +02:00
sigpipe.h sigpipe: if mbedTLS is used, ignore SIGPIPE 2019-01-28 12:03:33 +01:00
slist.c whitespace fixes 2018-09-23 22:24:02 +00:00
slist.h whitespace fixes 2018-09-23 22:24:02 +00:00
smb.c smb: check for full size message before reading message details 2019-09-16 14:16:06 +02:00
smb.h smb: fix memory leak on early failure 2018-07-30 17:59:36 +02:00
smtp.c smtp: check for and bail out on too short EHLO response 2019-09-03 08:25:23 +02:00
smtp.h
sockaddr.h whitespace fixes 2018-09-23 22:24:02 +00:00
socketpair.c socketpair: fix include and define for older TCP header systems 2019-10-10 23:20:15 +02:00
socketpair.h socketpair: an implemention for Windows and more 2019-10-10 11:04:38 +02:00
socks_gssapi.c snprintf: renamed and we now only use msnprintf() 2018-11-23 08:26:51 +01:00
socks_sspi.c strerror: make the strerror function use local buffers 2019-02-26 10:20:21 +01:00
socks.c socks: Fix destination host shown on SOCKS5 error 2019-09-21 23:45:02 -04:00
socks.h whitespace fixes 2018-09-23 22:24:02 +00:00
speedcheck.c timediff: return timediff_t from the time diff functions 2017-10-25 09:54:37 +02:00
speedcheck.h
splay.c cleanup: remove FIXME and TODO comments 2019-05-16 09:16:56 +02:00
splay.h headers: Remove no longer exported functions 2019-07-10 19:26:40 +02:00
ssh.h ssh: add a generic Curl_ssh_version function for SSH backends 2019-08-17 16:57:58 +02:00
strcase.c strcase: fix raw lowercasing the letter X 2019-09-24 01:31:37 -04:00
strcase.h http: lowercase headernames for HTTP/2 and HTTP/3 2019-09-23 22:33:31 +02:00
strdup.c Curl_saferealloc: Fixed typo in docblock 2018-09-21 14:24:55 +02:00
strdup.h
strerror.c vauth: Use CURLE_AUTH_ERROR for auth function errors 2019-08-14 03:14:01 -04:00
strerror.h strerror: make the strerror function use local buffers 2019-02-26 10:20:21 +01:00
strtok.c
strtok.h
strtoofft.c lib: silence null-dereference warnings 2018-04-09 15:54:52 +02:00
strtoofft.h progress: calculate transfer speed on milliseconds if possible 2018-01-08 23:45:09 +13:00
system_win32.c win32: make DLL loading a no-op for UWP 2019-06-25 20:33:07 +02:00
system_win32.h system_win32: fix clang warning 2019-07-11 02:27:04 -04:00
telnet.c urldata: simplify bytecounters 2019-03-01 17:30:34 +01:00
telnet.h whitespace fixes 2018-09-23 22:24:02 +00:00
tftp.c tftp: Alloc maximum blksize, and use default unless OACK is received 2019-09-09 08:14:34 +02:00
tftp.h whitespace fixes 2018-09-23 22:24:02 +00:00
timeval.c timediff: make it 64 bit (if possible) even with 32 bit time_t 2019-08-01 07:43:24 +02:00
timeval.h timediff: make it 64 bit (if possible) even with 32 bit time_t 2019-08-01 07:43:24 +02:00
transfer.c http2: move state-init from creation to pre-transfer 2019-10-03 22:55:42 +02:00
transfer.h cleanup: remove the 'numsocks' argument used in many places 2019-07-30 23:16:44 +02:00
url.c url: normalize CURLINFO_EFFECTIVE_URL 2019-10-16 14:10:55 +02:00
url.h cleanup: move functions out of url.c and make them static 2019-09-03 13:11:12 +02:00
urlapi-int.h headers: Remove no longer exported functions 2019-07-10 19:26:40 +02:00
urlapi.c urlapi: fix use-after-free bug 2019-10-03 22:54:26 +02:00
urldata.h cookies: using a share with cookies shouldn't enable the cookie engine 2019-09-28 18:10:43 +02:00
version.c ESNI: initial build/setup 2019-10-02 12:33:08 +02:00
warnless.c cleanup: make local functions static 2019-02-10 18:38:57 +01:00
warnless.h cleanup: make local functions static 2019-02-10 18:38:57 +01:00
wildcard.c wildcard: disable from build when FTP isn't present 2019-05-13 08:17:09 +02:00
wildcard.h wildcard: disable from build when FTP isn't present 2019-05-13 08:17:09 +02:00
x509asn1.c wolfssl: refer to it as wolfSSL only 2019-06-10 09:18:16 +02:00
x509asn1.h wolfssl: refer to it as wolfSSL only 2019-06-10 09:18:16 +02:00