mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
Avoid free'ing a filtered RPC message in the server
When a filter steals an RPC message, that message must not be freed, except by the filter code itself * src/rpc/virnetserverclient.c: Don't free stolen RPC messages
This commit is contained in:
parent
b7337d03ec
commit
c9ede1cfba
@ -723,13 +723,17 @@ readmore:
|
|||||||
filter = client->filters;
|
filter = client->filters;
|
||||||
while (filter) {
|
while (filter) {
|
||||||
int ret = filter->func(client, msg, filter->opaque);
|
int ret = filter->func(client, msg, filter->opaque);
|
||||||
if (ret < 0 || ret > 0) {
|
if (ret < 0) {
|
||||||
virNetMessageFree(msg);
|
virNetMessageFree(msg);
|
||||||
msg = NULL;
|
msg = NULL;
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
client->wantClose = true;
|
client->wantClose = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (ret > 0) {
|
||||||
|
msg = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
filter = filter->next;
|
filter = filter->next;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user