I am using the curl library in my program and I recently upgraded from version 7.21.4 to version 7.50.1 and I noticed a behavior change with semicolon in ftp password for example when using the URL "ftp://user:pass;email@example.com"
I expected my program to use "user" and "pass;word" for authentication when using the URL "ftp://user:pass;firstname.lastname@example.org" but instead I have "user" and "pass".
With curl 7.21.4, the URL "ftp://user:pass;email@example.com" was giving "user" and "pass;word" for authentication.
curl 7.50.1 (x86_64-pc-linux-gnu) libcurl/7.50.1 OpenSSL/1.0.2h zlib/1.2.5 c-ares/1.7.5
Protocols: file ftp ftps http https smb smbs smtp smtps
Features: AsynchDNS Largefile NTLM NTLM_WB SSL libz UnixSockets
Agreed. Regression brought by 73aa955. The semicolon (and the associated option it was added for) should not be treated like this for FTP:// URLs.
Semicolons are sub-delims according to RFC3986 which allows them to serve as delimiters for scheme-specific things, but there's no such field for FTP there and thus it should be allowed...
URL: only accept ";options" in SMTP/POP3/IMAP URL schemes
thanks for your report!
Thanks for the fix !