From 8c0d80245f3cdbbe6003844751d8fc6b1db7b1e4 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Wed, 15 Jun 2022 06:21:31 +0900 Subject: ui/cocoa: Fix clipboard text release [-NSPasteboard dataForType:] returns an autoreleased NSString, and callings its release method will result in double-free when the global autorelease pool is released. Use NSAutoreleasePool to release it properly. Signed-off-by: Akihiko Odaki Reviewed-by: Peter Maydell Message-Id: <20220614212131.94696-1-akihiko.odaki@gmail.com> Signed-off-by: Gerd Hoffmann --- ui/cocoa.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ui/cocoa.m') diff --git a/ui/cocoa.m b/ui/cocoa.m index 84c84e9..6a4dccff 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -1894,16 +1894,18 @@ static void cocoa_clipboard_notify(Notifier *notifier, void *data) static void cocoa_clipboard_request(QemuClipboardInfo *info, QemuClipboardType type) { + NSAutoreleasePool *pool; NSData *text; switch (type) { case QEMU_CLIPBOARD_TYPE_TEXT: + pool = [[NSAutoreleasePool alloc] init]; text = [[NSPasteboard generalPasteboard] dataForType:NSPasteboardTypeString]; if (text) { qemu_clipboard_set_data(&cbpeer, info, type, [text length], [text bytes], true); - [text release]; } + [pool release]; break; default: break; -- cgit v1.1