[Marble-devel] KDE/kdeedu/marble/src/plugins/network/qnam
Michael Jansen
kde at michael-jansen.biz
Sat Jul 18 15:51:32 CEST 2009
SVN commit 998749 by mjansen:
Fix a crash. From Memcheck (one of many invalid read/writes)
Do not delete a object when handling a signal emitted from the object.
==6651== Invalid read of size 8
==6651== at 0x5B85910: QListData::size() const (qlist.h:87)
==6651== by 0x5BBECFA: QList<QNetworkReplyImplPrivate::InternalNotifications>::size() const (qlist.h:117)
==6651== by 0x5BBCB38: QNetworkReplyImplPrivate::resumeNotificationHandling() (qnetworkreplyimpl.cpp:313)
==6651== by 0x5BBCCF6: QNetworkReplyImplPrivate::finished() (qnetworkreplyimpl.cpp:488)
==6651== by 0x5BA891A: QNetworkAccessBackend::finished() (qnetworkaccessbackend.cpp:284)
==6651== by 0x5BAFDB6: QNetworkAccessHttpBackend::finished() (qnetworkaccesshttpbackend.cpp:336)
==6651== by 0x5BB04D6: QNetworkAccessHttpBackend::replyFinished() (qnetworkaccesshttpbackend.cpp:689)
==6651== by 0x5BB0550: QNetworkAccessHttpBackend::downstreamReadyWrite() (qnetworkaccesshttpbackend.cpp:639)
==6651== by 0x5BBE915: QNetworkReplyImplPrivate::handleNotifications() (qnetworkreplyimpl.cpp:284)
==6651== by 0x5BBE9DF: QNetworkReplyImpl::event(QEvent*) (qnetworkreplyimpl.cpp:663)
==6651== by 0x6B5886C: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4106)
==6651== by 0x6B6150B: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3632)
==6651== Address 0x1e573148 is 320 bytes inside a block of size 432 free'd
==6651== at 0x4C23EAD: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==6651== by 0x5BBF4E6: QNetworkReplyImplPrivate::~QNetworkReplyImplPrivate() (qnetworkreplyimpl_p.h:102)
==6651== by 0x7EF1AD6: QObject::~QObject() (qobject.cpp:850)
==6651== by 0x7E7FFD0: QIODevice::~QIODevice() (qiodevice.cpp:403)
==6651== by 0x5BBBD9E: QNetworkReply::~QNetworkReply() (qnetworkreply.cpp:342)
==6651== by 0x5BBC5C1: QNetworkReplyImpl::~QNetworkReplyImpl() (qnetworkreplyimpl.cpp:543)
==6651== by 0x13998524: Marble::QNamDownloadJob::finished() (QNamDownloadJob.cpp:81)
==6651== by 0x13998639: Marble::QNamDownloadJob::qt_metacall(QMetaObject::Call, int, void**) (QNamDownloadJob.moc:75)
==6651== by 0x7EF07C7: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3115)
==6651== by 0x7EF1B88: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3192)
==6651== by 0x5C08751: QNetworkReply::finished() (moc_qnetworkreply.cpp:144)
==6651== by 0x5BBCCED: QNetworkReplyImplPrivate::finished() (qnetworkreplyimpl.cpp:487)
CCMAIL:marble-devel at kde.org
M +2 -1 QNamDownloadJob.cpp
--- trunk/KDE/kdeedu/marble/src/plugins/network/qnam/QNamDownloadJob.cpp #998748:998749
@@ -78,7 +78,8 @@
}
m_networkReply->disconnect( this );
- delete m_networkReply;
+ // No delete. This method is called by a signal QNetworkReply::finished.
+ m_networkReply->deleteLater();
m_networkReply = 0;
}
More information about the Marble-devel
mailing list