From 16deca6f1c5ccecc28fc2e381b20fff8a421088f Mon Sep 17 00:00:00 2001 From: Frediano Ziglio Date: Mon, 14 May 2018 09:24:00 +0100 Subject: [PATCH] marshaller: Fix a possible leak The possible file descriptor associated to the message (currently can be only the DRM descriptor from Virgl) is not freed in case the marshaller is reset/destroyed. This can happen connecting/disconnecting client. Signed-off-by: Frediano Ziglio Acked-by: Jonathon Jongsma --- common/marshaller.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/marshaller.c b/common/marshaller.c index b55b568..0b45523 100644 --- a/common/marshaller.c +++ b/common/marshaller.c @@ -210,6 +210,12 @@ void spice_marshaller_reset(SpiceMarshaller *m) m->next = NULL; m->n_items = 0; m->total_size = 0; + if (m->has_fd) { + m->has_fd = false; + if (m->fd != -1) { + close(m->fd); + } + } d = m->data; d->last_marshaller = d->marshallers;