diff options
author | Rodger Combs <rodger.combs@gmail.com> | 2018-07-01 04:56:08 -0500 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2018-10-02 00:20:43 +0300 |
commit | 1842a932d37638c910f4471d85e81554076c3d2c (patch) | |
tree | c536f9ab1b352530dce85e7cb38c4f1a8407db7d | |
parent | ada4f7c6006fc60189987b3ee012e7f4ced9926e (diff) | |
download | mpv-1842a932d37638c910f4471d85e81554076c3d2c.tar.bz2 mpv-1842a932d37638c910f4471d85e81554076c3d2c.tar.xz |
{mac,cocoa}: trim trailing null out of macosx_icon when loading it
This prevents crashes when loading the application icon image.
Suggested-by: Akemi <der.richter@gmx.de>
-rw-r--r-- | osdep/macosx_application.m | 3 | ||||
-rw-r--r-- | video/out/cocoa_common.m | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/osdep/macosx_application.m b/osdep/macosx_application.m index ca613e04f4..086d51fef3 100644 --- a/osdep/macosx_application.m +++ b/osdep/macosx_application.m @@ -127,8 +127,9 @@ static const char macosx_icon[] = - (NSImage *)getMPVIcon { + // The C string contains a trailing null, so we strip it away NSData *icon_data = [NSData dataWithBytesNoCopy:(void *)macosx_icon - length:sizeof(macosx_icon) + length:sizeof(macosx_icon) - 1 freeWhenDone:NO]; return [[NSImage alloc] initWithData:icon_data]; } diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m index abead0fb53..b4283bbe8d 100644 --- a/video/out/cocoa_common.m +++ b/video/out/cocoa_common.m @@ -172,8 +172,10 @@ static void set_application_icon(NSApplication *app) NSBundle *bundle = [NSBundle mainBundle]; if ([bundle pathForResource:@"icon" ofType:@"icns"]) return; + + // The C string contains a trailing null, so we strip it away NSData *icon_data = [NSData dataWithBytesNoCopy:(void *)macosx_icon - length:sizeof(macosx_icon) + length:sizeof(macosx_icon) - 1 freeWhenDone:NO]; NSImage *icon = [[NSImage alloc] initWithData:icon_data]; [app setApplicationIconImage:icon]; |