Skip to content

Commit

Permalink
websocket: make sure to free data buffer of close message
Browse files Browse the repository at this point in the history
  • Loading branch information
Montellese committed Jun 9, 2012
1 parent b57328d commit 9f00022
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions xbmc/network/websocket/WebSocketV8.cpp
Expand Up @@ -175,17 +175,19 @@ const CWebSocketFrame* CWebSocketV8::close(WebSocketCloseReason reason /* = WebS

char* data = new char[length + 1];
memset(data, 0, length + 1);
unsigned short iReason = Endian_SwapBE16((uint16_t)reason);
data[0] = ((char *)&iReason)[0];
data[1] = ((char *)&iReason)[1];
uint16_t iReason = Endian_SwapBE16((uint16_t)reason);
memcpy(data, &iReason, 2);
message.copy(data + 2, message.size());

if (m_state == WebSocketStateConnected)
m_state = WebSocketStateClosing;
else
m_state = WebSocketStateClosed;

return new CWebSocketFrame(WebSocketConnectionClose, data, length);
CWebSocketFrame* frame = new CWebSocketFrame(WebSocketConnectionClose, data, length);
delete data;

return frame;
}

std::string CWebSocketV8::calculateKey(const std::string &key)
Expand Down

0 comments on commit 9f00022

Please sign in to comment.