Fix memory crack when processing a message have several file descriptors.
authoryoungtaeck.song <youngtaeck.song@samsung.com>
Wed, 22 Aug 2012 03:08:22 +0000 (12:08 +0900)
committeryoungtaeck.song <youngtaeck.song@samsung.com>
Wed, 22 Aug 2012 11:51:59 +0000 (20:51 +0900)
[Title] Fix memory crack when processing a message have several file descriptors.
[Issue#] WEB-1625
[Problem] Memory crack occur when processing a message have several file descriptors.
[Cause] There is memmove code that have a wrong size argument.
[Solution] Fix size argument.

Change-Id: If9924d415d90ca164847378a6513e037aefaefb0

Source/WebKit2/Platform/CoreIPC/unix/ConnectionUnix.cpp

index 885e495..b4ca84d 100644 (file)
@@ -298,9 +298,14 @@ bool Connection::processMessage()
 
     if (attachmentFileDescriptorCount) {
         if (m_fileDescriptorsSize > attachmentFileDescriptorCount) {
+#if OS(TIZEN)
+            memmove(m_fileDescriptors.data(), m_fileDescriptors.data() + attachmentFileDescriptorCount, (m_fileDescriptorsSize - attachmentFileDescriptorCount) * sizeof(int));
+            m_fileDescriptorsSize -= attachmentFileDescriptorCount;
+#else
             size_t fileDescriptorsLength = attachmentFileDescriptorCount * sizeof(int);
             memmove(m_fileDescriptors.data(), m_fileDescriptors.data() + fileDescriptorsLength, m_fileDescriptorsSize - fileDescriptorsLength);
             m_fileDescriptorsSize -= fileDescriptorsLength;
+#endif
         } else
             m_fileDescriptorsSize = 0;
     }