Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.4.0
-
dbb2374d20959472ca379a38c37774518eef5bfe
Description
- OpenSSL is initialized using OPENSSL_add_all_algorithms_conf()
- This API is broken: If OpenSSL/Qt are compiled on the drive E: and on the customer site E: is a removable drive, the application will simply exit on startup without any chance for the application developer to handle this error
- This issue is known (http://rt.openssl.org/Ticket/Display.html?id=3263), but rejected on OpenSSLs side ("it's working as designed" - haha)
Frankly, I don't know why people who believe that exit()ing from a library call is an appropriate way of error handling are allowed to contribute to OpenSSL, but in any case, that puts users of Qt in a bad position:
- the only workaround is to either patch Qt or patch OpenSSL, or set OPENSSL_CONF to a drive which is known to exist (e. g. C:) - providing that the application developer knows this problem at all
- the bug is likely to arise only in a customer installation, making it difficult to reproduce for the application developer
Proposal: Do one of:
- Replace OpenSSL by something that works
- Revert https://qt.gitorious.org/qt/qtbase-winrt/commit/82f9ad6295fb35e138841810a05075214a2f2690 (I don't know how that change was relevant - I don't find any documentation for the application developer about where to put the config file)
- Document the shortcomings and the relevance of its config file clearly
Attachments
Issue Links
- resulted from
-
QTBUG-16018 QSslSocket may not load OpenSSL dynamic engines
-
- Closed
-
For Gerrit Dashboard: QTBUG-43843 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
103677,4 | Document restriction when building Qt with OpenSSL. | 5.4 | qt/qtbase | Status: ABANDONED | -1 | 0 |
178234,15 | Workaround the broken 'OPENSSL_config' (Windows) | dev | qt/qtbase | Status: MERGED | -2 | 0 |