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:
Daniel P. Berrange 2011-06-28 17:46:15 +01:00
parent b7337d03ec
commit c9ede1cfba

View File

@ -723,13 +723,17 @@ readmore:
filter = client->filters;
while (filter) {
int ret = filter->func(client, msg, filter->opaque);
if (ret < 0 || ret > 0) {
if (ret < 0) {
virNetMessageFree(msg);
msg = NULL;
if (ret < 0)
client->wantClose = true;
break;
}
if (ret > 0) {
msg = NULL;
break;
}
filter = filter->next;
}