Fix send_list/outbox desync on failed SEC_READ_BMP (possible memory leak)

This commit is contained in:
Vitaliy Filippov
2026-05-11 14:59:11 +03:00
parent 3dc0ab5c33
commit f61190f31d
+6 -1
View File
@@ -99,10 +99,15 @@ void osd_messenger_t::outbox_push(osd_op_t *cur_op)
if (cur_op->req.hdr.opcode == OSD_OP_SEC_READ_BMP)
{
if (cur_op->op_type == OSD_OP_IN && cur_op->reply.hdr.retval > 0)
{
to_send_list.push_back((iovec){ .iov_base = cur_op->buf, .iov_len = (size_t)cur_op->reply.hdr.retval });
to_outbox.push_back((msgr_sendp_t){ .op = cur_op, .flags = 0 });
}
else if (cur_op->op_type == OSD_OP_OUT && cur_op->req.sec_read_bmp.len > 0)
{
to_send_list.push_back((iovec){ .iov_base = cur_op->buf, .iov_len = (size_t)cur_op->req.sec_read_bmp.len });
to_outbox.push_back((msgr_sendp_t){ .op = cur_op, .flags = 0 });
to_outbox.push_back((msgr_sendp_t){ .op = cur_op, .flags = 0 });
}
}
if (cur_op->op_type == OSD_OP_IN)
{