mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-16 06:11:00 +01:00
BUG/MINOR: spoe: check buffer size before acquiring or releasing it
In spoe_acquire_buffer and spoe_release_buffer, instead of checking the buffer against buf_empty, we now check its size. It is important because when an allocation fails, it will be set to buf_wanted. In both cases, the size is 0. It is a proactive bug fix, no real problem was observed till now. It cannot be backported as is in 1.7 because of all changes made on the SPOE in 1.8.
This commit is contained in:
parent
3e5e417060
commit
600d37edda
@ -2695,7 +2695,7 @@ spoe_process_event(struct stream *s, struct spoe_context *ctx,
|
||||
static int
|
||||
spoe_acquire_buffer(struct buffer **buf, struct buffer_wait *buffer_wait)
|
||||
{
|
||||
if (*buf != &buf_empty)
|
||||
if ((*buf)->size)
|
||||
return 1;
|
||||
|
||||
if (!LIST_ISEMPTY(&buffer_wait->list)) {
|
||||
@ -2725,7 +2725,7 @@ spoe_release_buffer(struct buffer **buf, struct buffer_wait *buffer_wait)
|
||||
}
|
||||
|
||||
/* Release the buffer if needed */
|
||||
if (*buf != &buf_empty) {
|
||||
if ((*buf)->size) {
|
||||
b_free(buf);
|
||||
offer_buffers(buffer_wait->target,
|
||||
tasks_run_queue + applets_active_queue);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user