Skip to content

Commit a5e6d0d

Browse files
committed
8.16.0_13 with llvm-mingw downgraded to 20.1.8
Ref: 01e53fe commit message extended with more info. llvm-mingw 21 creating broken LibreSSL ARM64 binaries, crashing with errorlevel -1073740791 aka 0xC0000409 (STATUS_STACK_BUFFER_OVERRUN), as tested with the current latest llvm-mingw 21.1.4. The crash has no display, pop-up, it just quits with this error code. This error code indicates a "fail fast exception", not an actual buffer overrun, according to Raymond Chen: https://devblogs.microsoft.com/oldnewthing/20190108-00/?p=100655 curl is crashing silently when touching SSL code. It isn't LibreSSL-specific, and happens with OpenSSL 3.5.2 as well. It also isn't ARM64-specific, and happens with x64 builds too (but x64 isn't built with llvm-mingw in production.) With x64 binaries the crash happens on real Windows (seen on 11), but not when run under WINE (as seen on macOS). Test binaries (both ARM64 and x64 built with llvm-mingw 21.1.4): https://github.com/curl/curl-for-win/actions/runs/18890841503 https://github.com/curl/curl-for-win/actions/runs/18890841503/artifacts/4399632973 Disabling CFGuard by omitting `-mguard=cf` options makes the crash disappear. If this causes just not catching an error, or disabling a broken CFGuard, I can't tell. (If I had to guess it's the latter.) Ref: https://gist.github.com/alvinhochun/a65e4177e2b34d551d7ecb02b55a4b0a curl-for-win official ARM64 binaries affected: 8.15.0_6 to 8.16.0_12 Running a basic curl transfer test would be nice to catch this early, but running ARM64 binaries isn't possible under WINE. Another thing to consider is using llvm-mingw also for x64, to catch issues earlier and to reduce combinations. Regression from e7a1232
1 parent 01e53fe commit a5e6d0d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

_versions.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export CURL_HASH=40c8cddbcb6cc6251c03dea423a472a6cea4037be654ba5cf5dec6eb2d22ff1
1313
# Create revision string
1414
# NOTE: Set _REV to 1 after bumping CURL_VER_, then increment for each
1515
# CI rebuild via `main` branch push (e.g. after bumping a dependency).
16-
export _REV="${CW_REVISION:-12}"
16+
export _REV="${CW_REVISION:-13}"
1717

1818
export TRURL_VER_='0.16.1'
1919
export TRURL_HASH=aac947d4fb421a58abc19a3771e87942cd4721b8f855c433478c94c11a8203ba

0 commit comments

Comments
 (0)