Skip to content

Commit 3fa9fea

Browse files
committed
fix: eliminate OpenSSL duplicate symbols causing tls_parse_all_extensions stack overflow
- Add -no-openssl to Qt configure: Qt uses -schannel and never needed the OpenSSL TLS backend. Without this flag Qt compiled the OpenSSL plugin anyway, causing every OpenSSL symbol to appear twice in the final link alongside libtorrent's OpenSSL dependency. - Remove /FORCE:MULTIPLE from qBittorrent CMake args: this flag was silently resolving the duplicates by picking arbitrarily between the two copies, corrupting OpenSSL's ext_defs function pointer table and making tls_parse_all_extensions recurse infinitely into itself, overflowing the libtorrent-network-thread stack on TLS handshake.
1 parent 7c843f1 commit 3fa9fea

1 file changed

Lines changed: 1 addition & 2 deletions

File tree

.github/workflows/ci_windows_arm64_native.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ jobs:
130130
-static -static-runtime -release -xplatform win32-arm64-msvc `
131131
-prefix "${{ env.qt_target_root }}" `
132132
-qt-host-path "C:/Qt/${{ env.qt_version }}/msvc2022_64" `
133-
-system-zlib -schannel -qt-sqlite -sql-sqlite -no-sql-mysql -no-sql-odbc -no-sql-psql -c++std c++20 -- `
133+
-system-zlib -schannel -no-openssl -qt-sqlite -sql-sqlite -no-sql-mysql -no-sql-odbc -no-sql-psql -c++std c++20 -- `
134134
-DCMAKE_PREFIX_PATH="$vcpkgRoot/installed/${{ env.vcpkg_triplet }}" `
135135
-DCMAKE_TOOLCHAIN_FILE="$vcpkgRoot/scripts/buildsystems/vcpkg.cmake" `
136136
-DVCPKG_TARGET_TRIPLET=${{ env.vcpkg_triplet }}
@@ -212,7 +212,6 @@ jobs:
212212
-G Ninja `
213213
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
214214
-DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=ProgramDatabase `
215-
-DCMAKE_EXE_LINKER_FLAGS="/FORCE:MULTIPLE" `
216215
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="$cmakePreloadPath" `
217216
-DCMAKE_PREFIX_PATH="$qtTargetRoot;$hostQtRoot;$vcpkgInstalled" `
218217
-DQT_HOST_PATH="$hostQtRoot" `

0 commit comments

Comments
 (0)