[kdepimlibs/f14/master] - avoid overlapping memcpy in kio_imap
Rex Dieter
rdieter at fedoraproject.org
Thu Jan 20 16:39:31 UTC 2011
commit 7d0fdcfa2ed0b1c6d909dfaadb1a5b878f5f2798
Author: Rex Dieter <rdieter at fedoraproject.org>
Date: Thu Jan 20 10:38:53 2011 -0600
- avoid overlapping memcpy in kio_imap
kdepimlibs-4.5.5-no_overlapping_memcpy.patch | 29 ++++++++++++++++++++++++++
kdepimlibs.spec | 13 +++++++++--
2 files changed, 39 insertions(+), 3 deletions(-)
---
diff --git a/kdepimlibs-4.5.5-no_overlapping_memcpy.patch b/kdepimlibs-4.5.5-no_overlapping_memcpy.patch
new file mode 100644
index 0000000..3e8a196
--- /dev/null
+++ b/kdepimlibs-4.5.5-no_overlapping_memcpy.patch
@@ -0,0 +1,29 @@
+Patch to fix kio_imap4 crashes on Fedora 14:
+
+==4767== Source and destination overlap in memcpy(0x4d25b18, 0x4d25b1a, 33)
+==4767== at 0x4A073BA: memcpy (mc_replace_strmem.c:602)
+==4767== by 0xB10A9AF: IMAP4Protocol::myRead(void*, long) (string3.h:52)
+==4767== by 0xB10AAE4: IMAP4Protocol::parseRead(QByteArray&, long, long) (imap4.cpp:680)
+==4767== by 0xB125535: imapParser::parseLiteral(parseString&, bool, bool) (imapparser.cpp:1897)
+==4767== by 0xB12D798: imapParser::parseBody(parseString&) (imapparser.cpp:1382)
+==4767== by 0xB12E1D1: imapParser::parseFetch(unsigned long, parseString&) (imapparser.cpp:1490)
+==4767== by 0xB12EF84: imapParser::parseUntagged(parseString&) (imapparser.cpp:495)
+==4767== by 0xB12F4FD: imapParser::parseLoop() (imapparser.cpp:1743)
+==4767== by 0xB11DFD7: IMAP4Protocol::get(KUrl const&) (imap4.cpp:338)
+==4767== by 0x3D60D928A4: KIO::SlaveBase::dispatch(int, QByteArray const&) (in /usr/lib64/libkio.so.5.5.0)
+==4767== by 0xB108843: IMAP4Protocol::dispatch(int, QByteArray const&) (imap4.cpp:1828)
+==4767== by 0x3D60D8CBC2: KIO::SlaveBase::dispatchLoop() (in /usr/lib64/libkio.so.5.5.0)
+
+
+diff -u -r -p kdepimlibs-4.5.5/kioslave/imap4/imap4.cpp kdepimlibs.fixed/kioslave/imap4/imap4.cpp
+--- kdepimlibs-4.5.5/kioslave/imap4/imap4.cpp 2009-10-26 10:14:11.000000000 +0100
++++ kdepimlibs.fixed/kioslave/imap4/imap4.cpp 2011-01-20 16:37:23.000000000 +0100
+@@ -2577,7 +2577,7 @@ ssize_t IMAP4Protocol::myRead(void *data
+ ssize_t copyLen = (len < readBufferLen) ? len : readBufferLen;
+ memcpy(data, readBuffer, copyLen);
+ readBufferLen -= copyLen;
+- if (readBufferLen) memcpy(readBuffer, &readBuffer[copyLen], readBufferLen);
++ if (readBufferLen) memmove(readBuffer, &readBuffer[copyLen], readBufferLen);
+ return copyLen;
+ }
+ if (!isConnected()) return 0;
diff --git a/kdepimlibs.spec b/kdepimlibs.spec
index 72aec97..6ae66e3 100644
--- a/kdepimlibs.spec
+++ b/kdepimlibs.spec
@@ -6,7 +6,7 @@
Name: kdepimlibs
Version: 4.5.5
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: KDE PIM Libraries
# http://techbase.kde.org/Policies/Licensing_Policy
@@ -15,10 +15,12 @@ Group: System Environment/Libraries
URL: http://www.kde.org/
Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/kdepimlibs-%{version}.tar.bz2
-# upstream patches, stable branch:
-
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+## upstreamable patches
+# no overlapping memcpy
+Patch50: kdepimlibs-4.5.5-no_overlapping_memcpy.patch
+
%if ! 0%{?akonadi_subpkg}
Obsoletes: %{name}-akonadi < %{version}-%{release}
Provides: %{name}-akonadi = %{version}-%{release}
@@ -85,6 +87,8 @@ format for easy browsing.
%prep
%setup -q
+%patch50 -p1 -b .no_overlapping_memcpy
+
%build
mkdir -p %{_target_platform}
@@ -211,6 +215,9 @@ rm -rf %{buildroot}
%changelog
+* Thu Jan 20 2011 Rex Dieter <rdieter at fedoraproject.org> 4.5.5-2
+- avoid overlapping memcpy in kio_imap
+
* Wed Jan 05 2011 Rex Dieter <rdieter at fedoraproject.org> 4.5.5-1
- 4.5.5
More information about the scm-commits
mailing list