[vlc-devel] [PATCH 2/2] macosx: check type of preference entry before using
Marvin Scholz
epirat07 at gmail.com
Wed Mar 4 16:24:38 CET 2020
---
bin/darwinvlc.m | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/bin/darwinvlc.m b/bin/darwinvlc.m
index fbefc316a6..e8b56a08d1 100644
--- a/bin/darwinvlc.m
+++ b/bin/darwinvlc.m
@@ -226,21 +226,21 @@ int main(int i_argc, const char *ppsz_argv[])
argv[argc++] = "--no-ignore-config";
argv[argc++] = "--media-library";
- /* overwrite system language on Mac */
- char *lang = NULL;
-
- CFStringRef language;
- language = (CFStringRef)CFPreferencesCopyAppValue(CFSTR("language"),
- kCFPreferencesCurrentApplication);
- if (language) {
- lang = FromCFString(language, kCFStringEncodingUTF8);
- if (strncmp( lang, "auto", 4 )) {
- char tmp[11];
- snprintf(tmp, 11, "LANG=%s", lang);
- putenv(tmp);
+ /* Overwrite system language */
+ CFPropertyListRef lang_pref = CFPreferencesCopyAppValue(CFSTR("language"),
+ kCFPreferencesCurrentApplication);
+
+ if (lang_pref) {
+ if (CFGetTypeID(lang_pref) == CFStringGetTypeID()) {
+ char *lang = FromCFString(lang_pref, kCFStringEncodingUTF8);
+ if (strncmp(lang, "auto", 4)) {
+ char tmp[11];
+ snprintf(tmp, 11, "LANG=%s", lang);
+ putenv(tmp);
+ }
+ free(lang);
}
- free(lang);
- CFRelease(language);
+ CFRelease(lang_pref);
}
ppsz_argv++; i_argc--; /* skip executable path */
--
2.21.1 (Apple Git-122.3)
More information about the vlc-devel
mailing list