SIGSEGV when called from QMetaObject::metaCall (QTBUG-29082, kde#311751)

This commit is contained in:
Rex Dieter 2013-02-11 11:58:18 -06:00
parent 0804463e9d
commit 9249484c37
2 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,33 @@
Parent: a1bc10b7 (Make sure QGraphicsItem notifies changes to focusScopeItem.)
Author: David E. Narváez <david.narvaez@computer.org>
AuthorDate: 2013-01-30 06:13:00 -0500
Commit: David E. Narváez <david.narvaez@computer.org>
CommitDate: 2013-01-30 06:13:00 -0500
Avoid calling metacall directly from the property animation code
Calling metacall directly will cause an invalid read when the
object in question is a QDeclarativeVMEMetaObject. See a full
explanation at the bug report.
Task-Number: QTBUG-29082
Change-Id: Ia2772bce409876861b7004320641b0c4e8996fa8
diff --git a/src/corelib/animation/qpropertyanimation.cpp b/src/corelib/animation/qpropertyanimation.cpp
index 31b129a..bcf82bf 100644
--- a/src/corelib/animation/qpropertyanimation.cpp
+++ b/src/corelib/animation/qpropertyanimation.cpp
@@ -133,13 +133,7 @@
return;
}
- if (newValue.userType() == propertyType) {
- //no conversion is needed, we directly call the QMetaObject::metacall
- void *data = const_cast<void*>(newValue.constData());
- QMetaObject::metacall(targetValue, QMetaObject::WriteProperty, propertyIndex, &data);
- } else {
- targetValue->setProperty(propertyName.constData(), newValue);
- }
+ targetValue->setProperty(propertyName.constData(), newValue);
}
/*!

View File

@ -20,7 +20,7 @@ Summary: Qt toolkit
Name: qt
Epoch: 1
Version: 4.8.4
Release: 13%{?dist}
Release: 14%{?dist}
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
@ -123,6 +123,8 @@ Patch83: qt-4.8-poll.patch
# upstream patches
# http://codereview.qt-project.org/#change,22006
Patch100: qt-everywhere-opensource-src-4.8.1-qtgahandle.patch
# https://bugreports.qt-project.org/browse/QTBUG-29082
Patch101: qt-everywhere-opensource-src-4.8.4-QTBUG-29082.patch
# backported from Qt5 (essentially)
# http://bugzilla.redhat.com/702493
# https://bugreports.qt-project.org/browse/QTBUG-5545
@ -481,6 +483,7 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
# upstream patches
%patch100 -p1 -b .QTgaHandler
%patch101 -p1 -b .QTBUG-29082
%patch102 -p1 -b .qgtkstyle_disable_gtk_theme_check
%patch113 -p1 -b .QTBUG-22829
%patch154 -p1 -b .0054
@ -1151,6 +1154,9 @@ fi
%changelog
* Mon Feb 11 2013 Rex Dieter <rdieter@fedoraproject.org> 4.8.4-14
- SIGSEGV when called from QMetaObject::metaCall (QTBUG-29082, kde#311751)
* Mon Feb 11 2013 Rex Dieter <rdieter@fedoraproject.org> 4.8.4-13
- qmake: add support for pkgconfig Requires.private