mirror of https://github.com/xemu-project/xemu.git
ui/vdagent: fix leak on error path
"info" was leaked when more than 10 entries. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20210805135715.857938-2-marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
ad22d05833
commit
248c50b2bd
|
@ -190,4 +190,6 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer,
|
|||
const void *data,
|
||||
bool update);
|
||||
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(QemuClipboardInfo, qemu_clipboard_info_unref)
|
||||
|
||||
#endif /* QEMU_CLIPBOARD_H */
|
||||
|
|
|
@ -438,7 +438,7 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
|
|||
uint8_t s = VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD;
|
||||
uint32_t size = msg->size;
|
||||
void *data = msg->data;
|
||||
QemuClipboardInfo *info;
|
||||
g_autoptr(QemuClipboardInfo) info = NULL;
|
||||
QemuClipboardType type;
|
||||
|
||||
if (have_selection(vd)) {
|
||||
|
@ -477,7 +477,6 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
|
|||
size -= sizeof(uint32_t);
|
||||
}
|
||||
qemu_clipboard_update(info);
|
||||
qemu_clipboard_info_unref(info);
|
||||
break;
|
||||
case VD_AGENT_CLIPBOARD_REQUEST:
|
||||
if (size < sizeof(uint32_t)) {
|
||||
|
@ -523,7 +522,6 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
|
|||
/* set empty clipboard info */
|
||||
info = qemu_clipboard_info_new(NULL, s);
|
||||
qemu_clipboard_update(info);
|
||||
qemu_clipboard_info_unref(info);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue