summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodger Combs <rodger.combs@gmail.com>2018-07-01 04:56:08 -0500
committerJan Ekström <jeebjp@gmail.com>2018-10-02 00:42:58 +0300
commit008ddf42a1adc0a5835d11a8598b86f29d6dad78 (patch)
treeb102abf78a14fc90ff496aafe0264a9987233f79
parent5b9cf1d0a6629ac0b657aa3bd5bbbcac161c8a15 (diff)
downloadmpv-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.m3
-rw-r--r--video/out/cocoa_common.m4
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];