[vlc-commits] macosx: check type of preference entry before using

Marvin Scholz git at videolan.org
Wed Mar 25 13:47:20 CET 2020


vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Wed Mar  4 16:22:19 2020 +0100| [b39f2f1c524b44bb9f7a2526d68c9f7e338d9f65] | committer: Marvin Scholz

macosx: check type of preference entry before using

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b39f2f1c524b44bb9f7a2526d68c9f7e338d9f65
---

 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 */



More information about the vlc-commits mailing list