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:42:58 +0300 |
commit | 008ddf42a1adc0a5835d11a8598b86f29d6dad78 (patch) | |
tree | b102abf78a14fc90ff496aafe0264a9987233f79 | |
parent | 5b9cf1d0a6629ac0b657aa3bd5bbbcac161c8a15 (diff) | |
download | mpv-008ddf42a1adc0a5835d11a8598b86f29d6dad78.tar.bz2 mpv-008ddf42a1adc0a5835d11a8598b86f29d6dad78.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>
(cherry picked from commit 1842a932d37638c910f4471d85e81554076c3d2c)
-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]; |