Skip to content
This repository was archived by the owner on Mar 5, 2026. It is now read-only.

Commit b63ed5d

Browse files
committed
fix wrong buffer length in web socket reserve
1 parent 232b87a commit b63ed5d

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

src/AsyncWebSocket.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer(uint8_t * data, size_t
146146
return;
147147
}
148148

149-
_data = new uint8_t[size + 1];
149+
_data = new uint8_t[_len + 1];
150150

151151
if (_data) {
152152
memcpy(_data, data, _len);
@@ -224,10 +224,9 @@ bool AsyncWebSocketMessageBuffer::reserve(size_t size)
224224
_data = nullptr;
225225
}
226226

227-
_data = new uint8_t[size];
228227

229228
if (_data) {
230-
_data[_len] = 0;
229+
_data[_len] = 0;
231230
return true;
232231
} else {
233232
return false;
@@ -873,8 +872,9 @@ void AsyncWebSocket::textAll(AsyncWebSocketMessageBuffer * buffer){
873872
if (!buffer) return;
874873
buffer->lock();
875874
for(const auto& c: _clients){
876-
if(c->status() == WS_CONNECTED)
877-
c->text(buffer);
875+
if(c->status() == WS_CONNECTED){
876+
c->text(buffer);
877+
}
878878
}
879879
buffer->unlock();
880880
_cleanBuffers();
@@ -1140,9 +1140,10 @@ AsyncWebSocketMessageBuffer * AsyncWebSocket::makeBuffer(uint8_t * data, size_t
11401140

11411141
void AsyncWebSocket::_cleanBuffers()
11421142
{
1143-
for(const auto& c: _buffers){
1144-
if(c->canDelete())
1145-
_buffers.remove(c);
1143+
for(AsyncWebSocketMessageBuffer * c: _buffers){
1144+
if(c && c->canDelete()){
1145+
_buffers.remove(c);
1146+
}
11461147
}
11471148
}
11481149

0 commit comments

Comments
 (0)