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 <akihiko.odaki@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20220614212131.94696-1-akihiko.odaki@gmail.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
839a482695
commit
8c0d80245f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user