Skip to content

Segfault on Linux after manual compilation #235

@proycon

Description

@proycon

Since the AppImage or binary wasn't working for me on my Arch Linux system (I didn't get any audio, communication problem with pipewire perhaps? See #234), I compiled xpilot from scratch. After fixing a small compilation problem (#233) I ran into a segfault somewhere deep in the SSL certificate handling.

The segfault happens one or two seconds after launch, the GUI shows for a bit and shows the 'first time' dialog (which I don't really get the chance to interact with before the segfault happens).

Gdb traceback follows:

Thread 1 "xPilot" received signal SIGSEGV, Segmentation fault.
0x0000555556168380 in ASN1_OCTET_STRING_it ()
(gdb) bt
#0  0x0000555556168380 in ASN1_OCTET_STRING_it ()
#1  0x00007fff9abdfad3 in operator() (__closure=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:255
#2  QScopeGuard<QTlsPrivate::(anonymous namespace)::x509ExtensionToValue(X509_EXTENSION*)::<lambda()> >::~QScopeGuard
    (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopeguard.h:41
#3  QTlsPrivate::(anonymous namespace)::x509ExtensionToValue (ext=0x555556ddadb0)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:351
#4  QTlsPrivate::X509CertificateOpenSSL::convertExtension (ext=0x555556ddadb0)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:929
#5  QTlsPrivate::X509CertificateOpenSSL::parseExtensions (this=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:906
#6  QTlsPrivate::X509CertificateOpenSSL::certificateFromX509 (x509=x509@entry=0x5555565bc3a0)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:573
#7  0x00007fff9abe0a7b in QTlsPrivate::X509CertificateOpenSSL::certificatesFromPem (pem=..., count=-1)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:746
#8  0x00007ffff663cd94 in QSslCertificate::fromData (data=..., format=format@entry=QSsl::Pem)
    at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslcertificate.cpp:757
#9  0x00007ffff663e0ad in QSslCertificate::fromPath
    (path=<optimized out>, format=format@entry=QSsl::Pem, syntax=syntax@entry=QSslCertificate::PatternSyntax::FixedString)
    at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslcertificate.cpp:671
#10 0x00007fff9abd7b91 in QTlsPrivate::systemCaCertificates ()
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qtlsbackend_openssl.cpp:402
#11 0x00007fff9abd8cd0 in QTlsBackendOpenSSL::systemCaCertificates (this=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qtlsbackend_openssl.cpp:417
#12 QTlsBackendOpenSSL::ensureCiphersAndCertsLoaded (this=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qtlsbackend_openssl.cpp:221
#13 0x00007ffff66cbdb0 in QSslSocketPrivate::ensureInitialized ()
    at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslsocket.cpp:2033
#14 QSslSocketPrivate::ensureInitialized () at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslsocket.cpp:2026
#15 QSslConfigurationPrivate::defaultConfiguration () at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslsocket.cpp:2259
#16 0x00007ffff65fafc9 in QSslConfiguration::defaultConfiguration ()
    at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslconfiguration.cpp:1095
#17 QNetworkRequest::sslConfiguration (this=0x7fffffffc780)
    at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkrequest.cpp:784
#18 0x00007ffff65e2502 in QNetworkReplyHttpImpl::QNetworkReplyHttpImpl
    (this=0x555556497e00, manager=<optimized out>, request=..., operation=<synthetic pointer>: <optimized out>, outgoingData=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkreplyhttpimpl.cpp:158
#19 QNetworkAccessManager::createRequest
    (this=<optimized out>, op=<optimized out>, originalReq=<optimized out>, outgoingData=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkaccessmanager.cpp:1318
#20 0x00007ffff65db361 in QNetworkAccessManager::get (this=<optimized out>, request=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkaccessmanager.cpp:780
#21 0x00005555556f6bad in auto xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}::operator()<QtPromise::QPromiseResolve<QString>, QtPromise::QPromiseReject<QString> >(QtPromise::QPromiseResolve<QString>, QtPromise::QPromiseReject<QString>) const ()
#22 0x00005555556f6e47 in QtPromise::QPromiseBase<QString>::QPromiseBase<xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}, 0>(xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}) ()
#23 0x00005555556f5fe2 in QtPromise::QPromise<QString>::QPromise<xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}>(xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}&&) ()
#24 0x00005555556f5bd6 in xpilot::ServerListManager::DownloadStatusInfo(QString const&) ()
#25 0x00005555556f5a8c in xpilot::ServerListManager::PerformServerListDownload(QString const&) ()
#26 0x000055555564a326 in xpilot::Main(int, char**)::{lambda()#1}::operator()() const ()

PS: It also seems that because of these failed attempts, I might be locked out by the vatsim server currently? I get "Network server address returned null, possibly due to a failed DNS lookup." in the AppImage-version of the client now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions