[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] ui/cocoa: Fix clipboard text release
From: |
Akihiko Odaki |
Subject: |
[PATCH] ui/cocoa: Fix clipboard text release |
Date: |
Wed, 15 Jun 2022 06:21:31 +0900 |
[-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 <akihiko.odaki@gmail.com>
---
ui/cocoa.m | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 84c84e98fc5..6a4dccff7f0 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;
--
2.32.1 (Apple Git-133)
- [PATCH] ui/cocoa: Fix clipboard text release,
Akihiko Odaki <=