From 270c1ba7053478dbd1c632eea18d6e54d51e4ecc Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Mon, 22 Dec 2014 15:03:24 +0100 Subject: KDE 4.7.4 for Slackware 13.37 (06dec2011) --- kde/patch/kdelibs/kdelibs.docbook.patch.gz | Bin 0 -> 361 bytes kde/patch/kdelibs/kdelibs.klocale.numberfix.patch | 130 +++++++++++++++++++++ kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch | 24 ++++ kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch | 65 +++++++++++ 4 files changed, 219 insertions(+) create mode 100644 kde/patch/kdelibs/kdelibs.docbook.patch.gz create mode 100644 kde/patch/kdelibs/kdelibs.klocale.numberfix.patch create mode 100644 kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch create mode 100644 kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch (limited to 'kde/patch/kdelibs') diff --git a/kde/patch/kdelibs/kdelibs.docbook.patch.gz b/kde/patch/kdelibs/kdelibs.docbook.patch.gz new file mode 100644 index 0000000..2de9a66 Binary files /dev/null and b/kde/patch/kdelibs/kdelibs.docbook.patch.gz differ diff --git a/kde/patch/kdelibs/kdelibs.klocale.numberfix.patch b/kde/patch/kdelibs/kdelibs.klocale.numberfix.patch new file mode 100644 index 0000000..d27c2a3 --- /dev/null +++ b/kde/patch/kdelibs/kdelibs.klocale.numberfix.patch @@ -0,0 +1,130 @@ +commit 2993b24bc21a340695ad35b4f014a684f4d0c651 +Author: John Layt +Date: Sat Dec 17 16:27:51 2011 +0000 + + KLocale: Fix readNumber() and readMoney() for lenient group parsing + + Restore the old pre-4.7 behaviour of accepting as valid any numbers + that do not contain any group separators but strictly enforce group + rules when the number contains 1 or more group separators. + + Distro's will really want to backport this fix to all versions of 4.7 + as previously number entry for all KDE apps would have been seriously + broken. + + I'm amazed I wasn't beaten up for this earlier! + + BUG: 288963 + FIXED-IN: 4.7.5 + CCMAIL: kde-packager@kde.org + +diff --git a/kdecore/localization/klocale_kde.cpp b/kdecore/localization/klocale_kde.cpp +index 6cf85f9..6690f4a 100644 +--- a/kdecore/localization/klocale_kde.cpp ++++ b/kdecore/localization/klocale_kde.cpp +@@ -1894,7 +1894,10 @@ double KLocalePrivate::readNumber(const QString &_str, bool * ok) const + + // Remove group separators + bool groupOk = true; +- str = parseDigitGroup(str, thousandsSeparator(), decimalSymbol(), numericDigitGrouping(), &groupOk); ++ if(str.contains(thousandsSeparator())) { ++ str = parseDigitGroup(str, thousandsSeparator(), decimalSymbol(), ++ numericDigitGrouping(), &groupOk); ++ } + + if (!groupOk) { + if (ok) { +@@ -2013,7 +2016,10 @@ double KLocalePrivate::readMoney(const QString &_str, bool *ok) const + + // Remove group separators + bool groupOk = true; +- str = parseDigitGroup(str, monetaryThousandsSeparator(), monetaryDecimalSymbol(), monetaryDigitGrouping(), &groupOk); ++ if(str.contains(monetaryThousandsSeparator())) { ++ str = parseDigitGroup(str, monetaryThousandsSeparator(), monetaryDecimalSymbol(), ++ monetaryDigitGrouping(), &groupOk); ++ } + + if (!groupOk) { + if (ok) { +diff --git a/kdecore/tests/klocaletest.cpp b/kdecore/tests/klocaletest.cpp +index 97a3bce..f80de85 100644 +--- a/kdecore/tests/klocaletest.cpp ++++ b/kdecore/tests/klocaletest.cpp +@@ -180,9 +180,13 @@ KLocaleTest::readNumber() + QVERIFY(!ok); + QCOMPARE(locale.readNumber(QString("123,456,789.01"), &ok), 0.0); + QVERIFY(!ok); +- QCOMPARE(locale.readNumber(QString("123456789"), &ok), 0.0); ++ QCOMPARE(locale.readNumber(QString("123456789"), &ok), 123456789.0); ++ QVERIFY(ok); ++ QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 123456789.01); ++ QVERIFY(ok); ++ QCOMPARE(locale.readNumber(QString("123456,789"), &ok), 0.0); + QVERIFY(!ok); +- QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 0.0); ++ QCOMPARE(locale.readNumber(QString("123456,789.01"), &ok), 0.0); + QVERIFY(!ok); + + //Test it parses correctly with an empty separator. +@@ -204,6 +208,14 @@ KLocaleTest::readNumber() + QVERIFY(ok); + QCOMPARE(locale.readNumber(QString("123 456 789.01"), &ok), 123456789.01); + QVERIFY(ok); ++ QCOMPARE(locale.readNumber(QString("123456789"), &ok), 123456789.0); ++ QVERIFY(ok); ++ QCOMPARE(locale.readNumber(QString("123456789.01"), &ok), 123456789.01); ++ QVERIFY(ok); ++ QCOMPARE(locale.readNumber(QString("123456 789"), &ok), 0.0); ++ QVERIFY(!ok); ++ QCOMPARE(locale.readNumber(QString("123456 789.01"), &ok), 0.0); ++ QVERIFY(!ok); + QCOMPARE(locale.readNumber(QString("123,456,789"), &ok), 0.0); + QVERIFY(!ok); + QCOMPARE(locale.readNumber(QString("123,456,789.01"), &ok), 0.0); +@@ -479,6 +491,10 @@ void KLocaleTest::readMoney() + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ 987,654,321.12", &ok), 987654321.12); + QVERIFY(ok); ++ QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12); ++ QVERIFY(ok); ++ QCOMPARE(locale.readMoney("$ 987654,321.12", &ok), 0.0); ++ QVERIFY(!ok); + + QCOMPARE(locale.readMoney( "$ -1.12", &ok), -1.12); + QVERIFY(ok); +@@ -498,6 +514,10 @@ void KLocaleTest::readMoney() + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -987,654,321.12", &ok), -987654321.12); + QVERIFY(ok); ++ QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12); ++ QVERIFY(ok); ++ QCOMPARE(locale.readMoney("$ -987654,321.12", &ok), 0.0); ++ QVERIFY(!ok); + + // Test incomplete formats + QCOMPARE(locale.readMoney( "$ 1", &ok), 1.00); +@@ -521,17 +541,21 @@ void KLocaleTest::readMoney() + + // Test Grouping + locale.d->setMonetaryDigitGrouping(QList()); +- QCOMPARE(locale.readMoney( "$ 987654321.12", &ok), 987654321.12); ++ QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12); + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12); + QVERIFY(ok); + locale.d->setMonetaryDigitGrouping(QList() << 3 << 2); +- QCOMPARE(locale.readMoney( "$ 98,76,54,321.12", &ok), 987654321.12); ++ QCOMPARE(locale.readMoney("$ 98,76,54,321.12", &ok), 987654321.12); + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -98,76,54,321.12", &ok), -987654321.12); + QVERIFY(ok); ++ QCOMPARE(locale.readMoney("$ 987654321.12", &ok), 987654321.12); ++ QVERIFY(ok); ++ QCOMPARE(locale.readMoney("$ -987654321.12", &ok), -987654321.12); ++ QVERIFY(ok); + locale.d->setMonetaryDigitGrouping(QList() << 3 << -1); +- QCOMPARE(locale.readMoney( "$ 987654,321.12", &ok), 987654321.12); ++ QCOMPARE(locale.readMoney("$ 987654,321.12", &ok), 987654321.12); + QVERIFY(ok); + QCOMPARE(locale.readMoney("$ -987654,321.12", &ok), -987654321.12); + QVERIFY(ok); diff --git a/kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch b/kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch new file mode 100644 index 0000000..b44b865 --- /dev/null +++ b/kde/patch/kdelibs/kdelibs.kssl.CVE-2011-3365.patch @@ -0,0 +1,24 @@ +commit bd70d4e589711fda9ab07738c46e37eee8376214 +Author: David Faure +Date: Thu Jun 30 23:43:45 2011 +0200 + + Security fix: don't interpret html tags + + Credits to Tim Brown for the find. + +diff --git a/kio/kssl/ksslcertificatebox.cpp b/kio/kssl/ksslcertificatebox.cpp +index 4ffc613..094787a 100644 +--- a/kio/kssl/ksslcertificatebox.cpp ++++ b/kio/kssl/ksslcertificatebox.cpp +@@ -36,6 +36,10 @@ KSslCertificateBox::KSslCertificateBox(QWidget *parent) + d(new KSslCertificateBoxPrivate()) + { + d->ui.setupUi(this); ++ // No fooling us with html tags ++ Q_FOREACH(QLabel* label, qFindChildren(this)) { ++ label->setTextFormat(Qt::PlainText); ++ } + } + + + diff --git a/kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch b/kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch new file mode 100644 index 0000000..819a429 --- /dev/null +++ b/kde/patch/kdelibs/kdelibs.nepomuk.unicode.patch @@ -0,0 +1,65 @@ +diff --git a/nepomuk/query/querybuilderdata_p.h b/nepomuk/query/querybuilderdata_p.h +index 055482e..3880e13 100644 +--- a/nepomuk/query/querybuilderdata_p.h ++++ b/nepomuk/query/querybuilderdata_p.h +@@ -32,6 +32,28 @@ + #include "query_p.h" + #include "groupterm_p.h" + ++namespace { ++/// A hack to avoid passing extended chars to the bif:search_excerpts method which cannot handle ++/// utf8 chars which use more than one char, ie. wide chars. ++/// Thus, we simply truncate each term at the first wide char. ++QStringList stripExtendedCharsHack(const QStringList& terms) { ++ QStringList newTerms; ++ foreach(const QString& term, terms) { ++ int i = 0; ++ while(i < term.length()) { ++ if(term[i].unicode() > 0x7f) { ++ break; ++ } ++ ++i; ++ } ++ if(i > 0) { ++ newTerms.append(term.left(i)); ++ } ++ } ++ return newTerms; ++} ++} ++ + namespace Nepomuk { + namespace Query { + class QueryBuilderData +@@ -246,16 +268,23 @@ namespace Nepomuk { + for( QHash::const_iterator it = m_fullTextSearchTerms.constBegin(); + it != m_fullTextSearchTerms.constEnd(); ++it ) { + const QString& varName = it.key(); +- const QStringList& terms = it.value(); +- // bif:search_excerpt wants a vector of all search terms +- excerptParts +- << QString::fromLatin1("bif:search_excerpt(bif:vector(bif:charset_recode('%1', '_WIDE_', 'UTF-8')), %2)") +- .arg( terms.join(QLatin1String("','")), +- varName ); ++ const QStringList terms = stripExtendedCharsHack(it.value()); ++ if(terms.count()) { ++ // bif:search_excerpt wants a vector of all search terms ++ excerptParts ++ << QString::fromLatin1("bif:search_excerpt(bif:vector('%1'), %2)") ++ .arg( terms.join(QLatin1String("','")), ++ varName ); ++ } + } + +- return QString::fromLatin1("(bif:concat(%1)) as ?_n_f_t_m_ex_") +- .arg(excerptParts.join(QLatin1String(","))); ++ if(excerptParts.count()) { ++ return QString::fromLatin1("(bif:concat(%1)) as ?_n_f_t_m_ex_") ++ .arg(excerptParts.join(QLatin1String(","))); ++ } ++ else { ++ return QString(); ++ } + } + else { + return QString(); -- cgit v1.2.3