- pull in a few upstream fixes, including a couple minor security issues
- Crash in DialogShadows::Private::freeX11Pixmaps() (kde#319137)
This commit is contained in:
Rex Dieter 2013-05-09 07:57:13 -05:00
parent f3b1d87bb6
commit 1d5f527063
7 changed files with 224 additions and 33 deletions

View File

@ -0,0 +1,61 @@
From c0daa108d8f6935d4e451e3f3ec3ecbdf5a5944f Mon Sep 17 00:00:00 2001
From: Andrea Iacovitti <aiacovitti@libero.it>
Date: Sun, 5 May 2013 19:38:55 +0200
Subject: [PATCH 1/7] Do no set transparent background for checkBox and
radioButton unless they have a background image to show. Otherwise, when
using oxygen style, they could end up to be invisible (as for the "Remember
me" checkBox in twitter).
CCBUG: 162905
---
khtml/rendering/render_replaced.cpp | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/khtml/rendering/render_replaced.cpp b/khtml/rendering/render_replaced.cpp
index 379e607..fcab77e 100644
--- a/khtml/rendering/render_replaced.cpp
+++ b/khtml/rendering/render_replaced.cpp
@@ -37,6 +37,8 @@
#include <QtGui/QApplication>
#include <QtGui/QLineEdit>
#include <QtGui/QComboBox>
+#include <QtGui/QCheckBox>
+#include <QtGui/QRadioButton>
#include <kglobalsettings.h>
#include <kurlrequester.h>
#include <QtCore/QObject>
@@ -381,9 +383,10 @@ void RenderWidget::updateFromElement()
if (!backgroundColor.isValid() && !style()->htmlHacks())
backgroundColor = Qt::transparent;
+ bool hasBackgroundImage = style()->hasBackgroundImage();
// check if we have to paint our background and let it show through the widget
bool trans = ( isRedirectedWidget() && !qobject_cast<KUrlRequester*>(m_widget) &&
- (style()->hasBackgroundImage() || (style()->hasBackground() && shouldPaintCSSBorders())) );
+ (hasBackgroundImage || (style()->hasBackground() && shouldPaintCSSBorders())) );
QPalette pal(QApplication::palette(m_widget));
// We need a non-transparent version for widgets with popups (e.g. kcombobox). The popups must not let
@@ -459,12 +462,17 @@ void RenderWidget::updateFromElement()
}
}
- m_widget->setPalette(pal);
+ if ( (qobject_cast<QCheckBox*>(m_widget) || qobject_cast<QRadioButton*>(m_widget)) &&
+ (backgroundColor == Qt::transparent && !hasBackgroundImage) ) {
+ m_widget->setPalette(non_trans_pal);
+ } else {
+ m_widget->setPalette(pal);
+ }
// Combobox's popup colors
if (qobject_cast<QComboBox*>(m_widget)) {
// Background
- if (style()->hasBackgroundImage()) {
+ if (hasBackgroundImage) {
non_trans_pal = QApplication::palette();
}
else if (backgroundColor.isValid() && backgroundColor != Qt::transparent) {
--
1.8.1.4

View File

@ -1,7 +1,23 @@
diff -up kdelibs-4.10.0/kio/kssl/kopenssl.cpp.CVE-2009-2702 kdelibs-4.10.0/kio/kssl/kopenssl.cpp
--- kdelibs-4.10.0/kio/kssl/kopenssl.cpp.CVE-2009-2702 2013-01-23 15:44:24.000000000 -0600
+++ kdelibs-4.10.0/kio/kssl/kopenssl.cpp 2013-01-31 07:37:12.210503883 -0600
@@ -196,6 +196,7 @@ static int (*K_X509_NAME_add_entry_by_tx
From e2de9d0925699471cdfb9a8d26feffb4a18f4f4d Mon Sep 17 00:00:00 2001
From: Jonathan Riddell <jr@jriddell.org>
Date: Mon, 6 May 2013 15:54:24 +0100
Subject: [PATCH 4/7] Fix parsing of Subject Alternate Names in kssl
(CVE-2009-2702) fix vulnerability with NULL byte in Subject Alternate Names
field of X.509 certificates by verifying that the QString length of the SAN
is not shorter than the ASN1 length
https://bugzilla.redhat.com/show_bug.cgi?id=520661
---
kio/kssl/kopenssl.cpp | 9 +++++++++
kio/kssl/kopenssl.h | 5 +++++
kio/kssl/ksslcertificate.cpp | 4 +++-
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/kio/kssl/kopenssl.cpp b/kio/kssl/kopenssl.cpp
index 38c7c93..e3ca535 100644
--- a/kio/kssl/kopenssl.cpp
+++ b/kio/kssl/kopenssl.cpp
@@ -196,6 +196,7 @@ static int (*K_X509_NAME_add_entry_by_txt)(X509_NAME*, char*, int, unsigned char
static X509_NAME *(*K_X509_NAME_new)() = 0L;
static int (*K_X509_REQ_set_subject_name)(X509_REQ*,X509_NAME*) = 0L;
static unsigned char *(*K_ASN1_STRING_data)(ASN1_STRING*) = 0L;
@ -17,7 +33,7 @@ diff -up kdelibs-4.10.0/kio/kssl/kopenssl.cpp.CVE-2009-2702 kdelibs-4.10.0/kio/k
#endif
}
@@ -1572,6 +1574,13 @@ unsigned char *KOpenSSLProxy::ASN1_STRIN
@@ -1572,6 +1574,13 @@ unsigned char *KOpenSSLProxy::ASN1_STRING_data(ASN1_STRING *x) {
return 0L;
}
@ -31,21 +47,15 @@ diff -up kdelibs-4.10.0/kio/kssl/kopenssl.cpp.CVE-2009-2702 kdelibs-4.10.0/kio/k
STACK_OF(SSL_CIPHER) *KOpenSSLProxy::SSL_get_ciphers(const SSL* ssl) {
if (K_SSL_get_ciphers) return (K_SSL_get_ciphers)(ssl);
return 0L;
diff -up kdelibs-4.10.0/kio/kssl/kopenssl.h.CVE-2009-2702 kdelibs-4.10.0/kio/kssl/kopenssl.h
--- kdelibs-4.10.0/kio/kssl/kopenssl.h.CVE-2009-2702 2013-01-23 15:44:24.000000000 -0600
+++ kdelibs-4.10.0/kio/kssl/kopenssl.h 2013-01-31 07:37:12.210503883 -0600
@@ -607,13 +607,17 @@ public:
*/
void ASN1_INTEGER_free(ASN1_INTEGER *x);
-
/*
* ASN1_STRING_data
*/
diff --git a/kio/kssl/kopenssl.h b/kio/kssl/kopenssl.h
index 3a41189..ab05486 100644
--- a/kio/kssl/kopenssl.h
+++ b/kio/kssl/kopenssl.h
@@ -614,6 +614,11 @@ public:
unsigned char *ASN1_STRING_data(ASN1_STRING *x);
/*
+ * ASN1_STRING_length
+ * ASN1_STRING_length
+ */
+ int ASN1_STRING_length(ASN1_STRING *x);
+
@ -53,10 +63,11 @@ diff -up kdelibs-4.10.0/kio/kssl/kopenssl.h.CVE-2009-2702 kdelibs-4.10.0/kio/kss
*
*/
int OBJ_obj2nid(ASN1_OBJECT *o);
diff -up kdelibs-4.10.0/kio/kssl/ksslcertificate.cpp.CVE-2009-2702 kdelibs-4.10.0/kio/kssl/ksslcertificate.cpp
--- kdelibs-4.10.0/kio/kssl/ksslcertificate.cpp.CVE-2009-2702 2013-01-23 15:44:24.000000000 -0600
+++ kdelibs-4.10.0/kio/kssl/ksslcertificate.cpp 2013-01-31 07:37:12.210503883 -0600
@@ -1301,7 +1301,9 @@ QStringList KSSLCertificate::subjAltName
diff --git a/kio/kssl/ksslcertificate.cpp b/kio/kssl/ksslcertificate.cpp
index 4388bfb..e90ec5a 100644
--- a/kio/kssl/ksslcertificate.cpp
+++ b/kio/kssl/ksslcertificate.cpp
@@ -1301,7 +1301,9 @@ QStringList KSSLCertificate::subjAltNames() const {
}
QString s = (const char *)d->kossl->ASN1_STRING_data(val->d.ia5);
@ -67,3 +78,6 @@ diff -up kdelibs-4.10.0/kio/kssl/ksslcertificate.cpp.CVE-2009-2702 kdelibs-4.10.
rc += s;
}
}
--
1.8.1.4

View File

@ -0,0 +1,25 @@
From 1ad51d1470069cf69eb932dc40095c2978407839 Mon Sep 17 00:00:00 2001
From: Andrea Iacovitti <aiacovitti@libero.it>
Date: Tue, 7 May 2013 23:19:32 +0200
Subject: [PATCH 5/7] Already trimmed string.
---
khtml/ecma/xmlhttprequest.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/khtml/ecma/xmlhttprequest.cpp b/khtml/ecma/xmlhttprequest.cpp
index cd72fe8..8649954 100644
--- a/khtml/ecma/xmlhttprequest.cpp
+++ b/khtml/ecma/xmlhttprequest.cpp
@@ -631,7 +631,7 @@ void XMLHttpRequest::setRequestHeader(const QString& _name, const QString& _valu
// TODO: Do something about "put" which kio_http sort of supports and
// the webDAV headers such as PROPFIND etc...
if (name == "get" || name == "post") {
- KUrl reqURL (doc->URL(), value.trimmed());
+ KUrl reqURL(doc->URL(), value);
open(name, reqURL, async, ec);
return;
}
--
1.8.1.4

View File

@ -0,0 +1,25 @@
From dfac74f852ff248990d047e5305d4e8deef9d540 Mon Sep 17 00:00:00 2001
From: Andrea Iacovitti <aiacovitti@libero.it>
Date: Wed, 8 May 2013 01:01:31 +0200
Subject: [PATCH 6/7] Use just calculated variable.
---
khtml/xml/dom_docimpl.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/khtml/xml/dom_docimpl.cpp b/khtml/xml/dom_docimpl.cpp
index bb65a89..c100400 100644
--- a/khtml/xml/dom_docimpl.cpp
+++ b/khtml/xml/dom_docimpl.cpp
@@ -1995,7 +1995,7 @@ void DocumentImpl::processHttpEquiv(const DOMString &equiv, const DOMString &con
str = parseURL( DOMString(str) ).string();
QString newURL = document()->completeURL( str );
if ( ok )
- v->part()->scheduleRedirection(delay, document()->completeURL( str ), delay < 2 || newURL == URL().url());
+ v->part()->scheduleRedirection(delay, newURL, delay < 2 || newURL == URL().url());
}
}
else if(strcasecmp(equiv, "expires") == 0)
--
1.8.1.4

View File

@ -0,0 +1,38 @@
From 65d736dab592bced4410ccfa4699de89f78c96ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9gory=20Oestreicher?= <greg@kamago.net>
Date: Wed, 8 May 2013 23:16:00 +0200
Subject: [PATCH 7/7] Don't show passwords contained in HTTP URLs in error
messages BUG: 319428
---
kioslave/http/http.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kioslave/http/http.cpp b/kioslave/http/http.cpp
index 2d139a9..129fc7b 100644
--- a/kioslave/http/http.cpp
+++ b/kioslave/http/http.cpp
@@ -3056,7 +3056,7 @@ try_again:
; // Ignore error
} else {
if (!sendErrorPageNotification()) {
- error(ERR_INTERNAL_SERVER, m_request.url.url());
+ error(ERR_INTERNAL_SERVER, m_request.url.prettyUrl());
return false;
}
}
@@ -3072,9 +3072,9 @@ try_again:
// Tell that we will only get an error page here.
if (!sendErrorPageNotification()) {
if (m_request.responseCode == 403)
- error(ERR_ACCESS_DENIED, m_request.url.url());
+ error(ERR_ACCESS_DENIED, m_request.url.prettyUrl());
else
- error(ERR_DOES_NOT_EXIST, m_request.url.url());
+ error(ERR_DOES_NOT_EXIST, m_request.url.prettyUrl());
return false;
}
} else if (m_request.responseCode >= 301 && m_request.responseCode<= 303) {
--
1.8.1.4

View File

@ -0,0 +1,12 @@
diff -up kdelibs-4.10.3/plasma/private/dialogshadows.cpp.kde319137 kdelibs-4.10.3/plasma/private/dialogshadows.cpp
--- kdelibs-4.10.3/plasma/private/dialogshadows.cpp.kde319137 2013-05-02 23:41:11.209607748 -0500
+++ kdelibs-4.10.3/plasma/private/dialogshadows.cpp 2013-05-09 07:54:48.329139462 -0500
@@ -335,6 +335,8 @@ void DialogShadows::Private::setupData(P
void DialogShadows::Private::freeX11Pixmaps()
{
#ifdef Q_WS_X11
+ if (!QX11Info::display())
+ return;
foreach (const QPixmap &pixmap, m_shadowPixmaps) {
if (!pixmap.isNull()) {
XFreePixmap(QX11Info::display(), pixmap.handle());

View File

@ -34,7 +34,7 @@
Summary: KDE Libraries
Version: 4.10.3
Release: 1%{?dist}
Release: 2%{?dist}
Name: kdelibs
Epoch: 6
@ -157,13 +157,21 @@ Patch61: kdelibs-4.9.3-dot.patch
#https://bugs.kde.org/315578
# for now, causes regression,
#https://bugs.kde.org/317138
Patch100: return-not-break.-copy-paste-error.patch
Patch101: coding-style-fixes.patch
Patch102: return-application-icons-properly.patch
Patch090: return-not-break.-copy-paste-error.patch
Patch091: coding-style-fixes.patch
Patch092: return-application-icons-properly.patch
# workaround "Crash in DialogShadows::Private::freeX11Pixmaps()"
# https://bugs.kde.org/319137
Patch100: kdelibs-4.10.3-kde319137.patch
Patch101: 0001-Do-no-set-transparent-background-for-checkBox-and-ra.patch
Patch104: 0004-Fix-parsing-of-Subject-Alternate-Names-in-kssl-CVE-2.patch
Patch105: 0005-Already-trimmed-string.patch
Patch106: 0006-Use-just-calculated-variable.patch
Patch107: 0007-Don-t-show-passwords-contained-in-HTTP-URLs-in-error.patch
## security fix
# Not Upstreamed? why not ? -- Rex
Patch200: kdelibs-4.10.0-CVE-2009-2702.patch
# rhel patches
@ -351,12 +359,17 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch61 -p1 -b .dot
# upstream patches
%patch100 -p1 -R -b .return-not-break.-copy-paste-error
%patch101 -p1 -R -b .coding-style-fixes.patch
%patch102 -p1 -R -b .return-application-icons-properly
%patch090 -p1 -R -b .return-not-break.-copy-paste-error
%patch091 -p1 -R -b .coding-style-fixes.patch
%patch092 -p1 -R -b .return-application-icons-properly
%patch100 -p1 -b .kde319137
%patch101 -p1 -b .0001-Do-no-set-transparent-background-for-checkBox-and-ra
%patch104 -p1 -b .0004-Fix-parsing-of-Subject-Alternate-Names-in-kssl-CVE-2
%patch105 -p1 -b .0005-Already-trimmed-string
%patch106 -p1 -b .0006-Use-just-calculated-variable
%patch107 -p1 -b .0007-Don-t-show-passwords-contained-in-HTTP-URLs-in-error
# security fixes
%patch200 -p1 -b .CVE-2009-2702
# rhel patches
%if ! 0%{?webkit}
@ -366,6 +379,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch301 -p1 -b .abrt
%endif
%build
mkdir -p %{_target_platform}
@ -393,8 +407,6 @@ doc/api/doxygen.sh .
%install
rm -rf %{buildroot}
make install/fast DESTDIR=%{buildroot} -C %{_target_platform}
# see also use-of/patching of XDG_MENU_PREFIX in kdebase/kde-settings
@ -597,6 +609,10 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
%changelog
* Thu May 09 2013 Rex Dieter <rdieter@fedoraproject.org> - 4.10.3-2
- pull in a few upstream fixes, including a couple minor security issues
- Crash in DialogShadows::Private::freeX11Pixmaps() (kde#319137)
* Mon May 06 2013 Than Ngo <than@redhat.com> - 4.10.3-1
- 4.10.3