Fixed a crash

This commit is contained in:
WolverinDEV
2021-01-04 19:45:48 +01:00
parent 3c0c48c00c
commit a233915064
3 changed files with 12 additions and 7 deletions
@@ -801,17 +801,20 @@ void LocalFileTransfer::callback_transfer_network_write(int fd, short events, vo
std::lock_guard block{transfer->network_buffer.mutex};
if(transfer->network_buffer.buffer_head == buffer) {
transfer->network_buffer.buffer_head = buffer->next;
if(!buffer->next)
if(!buffer->next) {
transfer->network_buffer.buffer_tail = &transfer->network_buffer.buffer_head;
}
assert(transfer->network_buffer.bytes >= written);
transfer->network_buffer.bytes -= written;
buffer_left_size = transfer->network_buffer.bytes;
/* Will not trigger a memory free since we're still holding onto one reference */
deref_buffer(buffer);
} else {
/* the buffer got remove */
}
}
deref_buffer(buffer);
} else {
std::lock_guard block{transfer->network_buffer.mutex};
if(transfer->network_buffer.buffer_head == buffer) {
@@ -819,7 +822,7 @@ void LocalFileTransfer::callback_transfer_network_write(int fd, short events, vo
transfer->network_buffer.bytes -= written;
buffer_left_size = transfer->network_buffer.bytes;
} else {
/* the buffer got remove */
/* the buffer got removed */
}
}