From 6a664d0660911173c7e85c60b9af195a0ef4f110 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 6 Jan 2021 11:14:56 +0100 Subject: [PATCH] Fix segmentation fault in QObject::dumpObjectInfo There was a check "if (cd && cd->signalVectorCount())" in the code which was faulty because "signalVectorCount()" could return -1 to indicate that no signalVector is available. This patch fixes the problem. Fixes: QTBUG-89846 Pick-to: 5.15 Change-Id: I12c512ff8d889ba2bd298789ab6081930f739089 Reviewed-by: Thiago Macieira --- src/corelib/kernel/qobject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 52c095491cb..9bcf29830b2 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -4130,7 +4130,7 @@ void QObject::dumpObjectInfo() const qDebug(" SIGNALS OUT"); QObjectPrivate::ConnectionData *cd = d->connections.loadRelaxed(); - if (cd && cd->signalVectorCount()) { + if (cd && cd->signalVectorCount() > 0) { QObjectPrivate::SignalVector *signalVector = cd->signalVector.loadRelaxed(); for (int signal_index = 0; signal_index < signalVector->count(); ++signal_index) { const QObjectPrivate::Connection *c = signalVector->at(signal_index).first.loadRelaxed();