E.g. on CHERI pointers are 128 bits [1]. This causes the unit3214 test to fail, which was written with more traditional platforms in mind. Here is the output of log/stderr3214: ``` URL: - BAD: struct Curl_easy is 7984 bytes, allowed to be 5370: 2614 bytes too big BAD: struct connectdata is 1408 bytes, allowed to be 1300: 108 bytes too big BAD: struct Curl_multi is 1248 bytes, allowed to be 850: 398 bytes too big BAD: struct curl_httppost is 224 bytes, allowed to be 112: 112 bytes too big BAD: struct curl_slist is 32 bytes, allowed to be 16: 16 bytes too big BAD: struct curl_khkey is 32 bytes, allowed to be 24: 8 bytes too big BAD: struct curl_hstsentry is 48 bytes, allowed to be 40: 8 bytes too big BAD: struct curl_mime is 144 bytes, allowed to be 96: 48 bytes too big BAD: struct curl_mimepart is 592 bytes, allowed to be 440: 152 bytes too big BAD: struct curl_certinfo is 32 bytes, allowed to be 16: 16 bytes too big BAD: struct curl_tlssessioninfo is 32 bytes, allowed to be 16: 16 bytes too big BAD: struct curl_blob is 32 bytes, allowed to be 24: 8 bytes too big BAD: struct CURLMsg is 48 bytes, allowed to be 24: 24 bytes too big BAD: struct curl_header is 80 bytes, allowed to be 48: 32 bytes too big Test ended with result 14 ``` Multiply the allowed size on systems with larger than 64-bit pointers. [1] https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/20171017a-cheri-poster.pdf Closes #22299 |
||
|---|---|---|
| .circleci | ||
| .github | ||
| CMake | ||
| docs | ||
| include | ||
| lib | ||
| LICENSES | ||
| m4 | ||
| projects | ||
| scripts | ||
| src | ||
| tests | ||
| .clang-tidy.yml | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| acinclude.m4 | ||
| appveyor.sh | ||
| appveyor.yml | ||
| CHANGES.md | ||
| CMakeLists.txt | ||
| configure.ac | ||
| COPYING | ||
| curl-config.in | ||
| Dockerfile | ||
| GIT-INFO.md | ||
| libcurl.pc.in | ||
| Makefile.am | ||
| README | ||
| README.md | ||
| RELEASE-NOTES | ||
| renovate.json | ||
| REUSE.toml | ||
| SECURITY.md | ||
curl is a command-line tool for transferring data from or to a server using URLs. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
Learn how to use curl by reading the man page or everything curl.
Find out how to install curl by reading the INSTALL document.
libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl man page to learn how.
Open Source
curl is Open Source and is distributed under an MIT-like license.
Contact
Contact us on a suitable mailing list or use GitHub issues/ pull requests/ discussions.
All contributors to the project are listed in the THANKS document.
Commercial support
For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.
Website
Visit the curl website for the latest news and downloads.
Source code
Download the latest source from the Git server:
git clone https://github.com/curl/curl
Security problems
Report suspected security problems privately and not in public.
Backers
Thank you to all our backers 🙏 Become a backer.
Sponsors
Support this project by becoming a sponsor.