Changeset 184005 in webkit
- Timestamp:
- May 8, 2015, 12:14:43 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
Modules/websockets/WebSocketChannel.cpp (modified) (1 diff)
-
platform/network/cf/SocketStreamHandleCFNet.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r184003 r184005 1 2015-05-08 Alexey Proskuryakov <ap@apple.com> 2 3 Crashes in SocketStreamHandleBase::close 4 https://bugs.webkit.org/show_bug.cgi?id=144767 5 rdar://problem/20486538 6 7 Reviewed by Brady Eidson. 8 9 This is a speculative fix, I could not reproduce the crash. 10 11 * Modules/websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::processFrame): 12 Normally, processOutgoingFrameQueue() closes the handle in the end when called in 13 OutgoingFrameQueueClosing state. But there is no definitive protection against 14 processing two CLOSE frames, in which case we'd try to close the handle twice. 15 16 * platform/network/cf/SocketStreamHandleCFNet.cpp: 17 (WebCore::SocketStreamHandle::readStreamCallback): Passing empty data to the client 18 results in the socket being closed, which makes no sense here. 19 1 20 2015-05-08 Commit Queue <commit-queue@webkit.org> 2 21 -
trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp
r183234 r184005 650 650 startClosingHandshake(m_closeEventCode, m_closeEventReason); 651 651 if (m_closing) { 652 m_outgoingFrameQueueStatus = OutgoingFrameQueueClosing; 652 if (m_outgoingFrameQueueStatus == OutgoingFrameQueueOpen) 653 m_outgoingFrameQueueStatus = OutgoingFrameQueueClosing; 653 654 processOutgoingFrameQueue(); 654 655 } -
trunk/Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp
r179283 r184005 508 508 } 509 509 510 if (!length) 511 return; 512 510 513 m_client->didReceiveSocketStreamData(this, reinterpret_cast<const char*>(ptr), length); 511 514
Note:
See TracChangeset
for help on using the changeset viewer.