Fixed a crash
This commit is contained in:
@@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user