From a410a750c74c49e004ddd442e0debda891d83126 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 25 Dec 2013 17:58:34 +0100 Subject: cocoa: sanitize window title string and guard against NULL If the utf8 string used to create the NSString for title was invalid utf8, -stringWithUTF8String returned nil and triggered an assertion in Cocoa's framework code. Sanitize the utf8 string and if the sanitation wasn't enough just avoid crashing by not setting a title. Fixes #406 --- video/out/cocoa_common.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m index 29c06044fe..67436577cf 100644 --- a/video/out/cocoa_common.m +++ b/video/out/cocoa_common.m @@ -349,7 +349,12 @@ static int create_gl_context(struct vo *vo, int gl3profile) static void cocoa_set_window_title(struct vo *vo, const char *title) { struct vo_cocoa_state *s = vo->cocoa; - [s->window setTitle: [NSString stringWithUTF8String:title]]; + void *talloc_ctx = talloc_new(NULL); + struct bstr btitle = bstr_sanitize_utf8_latin1(talloc_ctx, bstr0(title)); + NSString *nstitle = [NSString stringWithUTF8String:btitle.start]; + if (nstitle) + [s->window setTitle: nstitle]; + talloc_free(talloc_ctx); } static void update_window(struct vo *vo, int d_width, int d_height) -- cgit v1.2.3