Title: [115964] trunk/Source/WebCore
- Revision
- 115964
- Author
- [email protected]
- Date
- 2012-05-03 05:35:29 -0700 (Thu, 03 May 2012)
Log Message
Web Inspector: crash in InspectorResourceAgent::didReceiveWebSocketFrame
https://bugs.webkit.org/show_bug.cgi?id=85394
Reviewed by Pavel Feldman.
Pass string length explicitely when creating String object from non-null-terminated
char* strings.
* inspector/InspectorResourceAgent.cpp:
(WebCore):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
(WebCore::InspectorResourceAgent::didSendWebSocketFrame):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (115963 => 115964)
--- trunk/Source/WebCore/ChangeLog 2012-05-03 12:26:20 UTC (rev 115963)
+++ trunk/Source/WebCore/ChangeLog 2012-05-03 12:35:29 UTC (rev 115964)
@@ -1,3 +1,18 @@
+2012-05-03 Yury Semikhatsky <[email protected]>
+
+ Web Inspector: crash in InspectorResourceAgent::didReceiveWebSocketFrame
+ https://bugs.webkit.org/show_bug.cgi?id=85394
+
+ Reviewed by Pavel Feldman.
+
+ Pass string length explicitely when creating String object from non-null-terminated
+ char* strings.
+
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore):
+ (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
+ (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
+
2012-05-03 'Pavel Feldman' <[email protected]>
Not reviewed: never surround InspectorInstrumentation:: with ENABLED(INSPECTOR)
Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (115963 => 115964)
--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp 2012-05-03 12:26:20 UTC (rev 115963)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp 2012-05-03 12:35:29 UTC (rev 115964)
@@ -456,23 +456,22 @@
{
m_frontend->webSocketClosed(IdentifiersFactory::requestId(identifier), currentTime());
}
+
void InspectorResourceAgent::didReceiveWebSocketFrame(unsigned long identifier, const WebSocketFrame& frame)
{
- String payload = frame.payload;
RefPtr<TypeBuilder::Network::WebSocketFrame> frameObject = TypeBuilder::Network::WebSocketFrame::create()
.setOpcode(frame.opCode)
.setMask(frame.masked)
- .setPayloadData(payload.substring(0, frame.payloadLength));
+ .setPayloadData(String(frame.payload, frame.payloadLength));
m_frontend->webSocketFrameReceived(IdentifiersFactory::requestId(identifier), currentTime(), frameObject);
}
void InspectorResourceAgent::didSendWebSocketFrame(unsigned long identifier, const WebSocketFrame& frame)
{
- String payload = frame.payload;
RefPtr<TypeBuilder::Network::WebSocketFrame> frameObject = TypeBuilder::Network::WebSocketFrame::create()
.setOpcode(frame.opCode)
.setMask(frame.masked)
- .setPayloadData(payload.substring(0, frame.payloadLength));
+ .setPayloadData(String(frame.payload, frame.payloadLength));
m_frontend->webSocketFrameSent(IdentifiersFactory::requestId(identifier), currentTime(), frameObject);
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes