macosx: services_discovery/bonjour: Allow compilation with SDKs < 10.11
[vlc.git] / modules / keystore / plaintext.c
index cf9f338..b8ea30e 100644 (file)
@@ -360,15 +360,7 @@ Store(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX],
     vlc_keystore_entry *p_entry = list_get_entry(p_list, ppsz_values, NULL);
 
     if (p_entry)
     vlc_keystore_entry *p_entry = list_get_entry(p_list, ppsz_values, NULL);
 
     if (p_entry)
-    {
-        free(p_entry->p_secret);
-        p_entry->p_secret = NULL;
-        for (unsigned int i = 0; i < KEY_MAX; ++i)
-        {
-            free(p_entry->ppsz_values[i]);
-            p_entry->ppsz_values[i] = NULL;
-        }
-    }
+        vlc_keystore_release_entry(p_entry);
     else
     {
         p_entry = list_new_entry(p_list);
     else
     {
         p_entry = list_new_entry(p_list);
@@ -441,8 +433,7 @@ Remove(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX])
 
     while ((p_entry = list_get_entry(p_list, ppsz_values, &i_index)))
     {
 
     while ((p_entry = list_get_entry(p_list, ppsz_values, &i_index)))
     {
-        free(p_entry->p_secret);
-        p_entry->p_secret = NULL;
+        vlc_keystore_release_entry(p_entry);
         i_count++;
     }
 
         i_count++;
     }
 
@@ -463,12 +454,13 @@ CleanUp(vlc_keystore_sys *p_sys)
     {
         if (p_sys->b_error)
         {
     {
         if (p_sys->b_error)
         {
-            if (truncate0(p_sys->i_fd))
+            if (p_sys->i_fd != -1 && truncate0(p_sys->i_fd))
                 vlc_unlink(p_sys->psz_file);
         }
 
 #ifdef HAVE_FLOCK
                 vlc_unlink(p_sys->psz_file);
         }
 
 #ifdef HAVE_FLOCK
-        flock(p_sys->i_fd, LOCK_UN);
+        if (p_sys->i_fd != -1)
+            flock(p_sys->i_fd, LOCK_UN);
 #endif
         fclose(p_sys->p_file);
     }
 #endif
         fclose(p_sys->p_file);
     }
@@ -502,14 +494,16 @@ Open(vlc_object_t *p_this)
 
         p_sys->psz_file = psz_file;
         p_sys->p_file = vlc_fopen(p_sys->psz_file, "a+");
 
         p_sys->psz_file = psz_file;
         p_sys->p_file = vlc_fopen(p_sys->psz_file, "a+");
+        p_sys->i_fd = -1;
 
         if (!p_sys->p_file)
         {
             CleanUp(p_sys);
             return VLC_EGENERIC;
         }
 
         if (!p_sys->p_file)
         {
             CleanUp(p_sys);
             return VLC_EGENERIC;
         }
-        p_sys->i_fd = fileno(p_sys->p_file);
-        if (p_sys->i_fd == -1)
+
+        int i_fd = fileno(p_sys->p_file);
+        if (i_fd == -1)
         {
             CleanUp(p_sys);
             return VLC_EGENERIC;
         {
             CleanUp(p_sys);
             return VLC_EGENERIC;
@@ -519,12 +513,13 @@ Open(vlc_object_t *p_this)
          * If HAVE_FLOCK is not defined, the running OS is most likely Windows
          * and a lock was already acquired when the file was opened. */
 #ifdef HAVE_FLOCK
          * If HAVE_FLOCK is not defined, the running OS is most likely Windows
          * and a lock was already acquired when the file was opened. */
 #ifdef HAVE_FLOCK
-        if (flock(p_sys->i_fd, LOCK_EX|LOCK_NB) != 0)
+        if (flock(i_fd, LOCK_EX|LOCK_NB) != 0)
         {
             CleanUp(p_sys);
             return VLC_EGENERIC;
         }
 #endif
         {
             CleanUp(p_sys);
             return VLC_EGENERIC;
         }
 #endif
+        p_sys->i_fd = i_fd;
 
         if (list_read(p_sys, &p_sys->list) != VLC_SUCCESS)
         {
 
         if (list_read(p_sys, &p_sys->list) != VLC_SUCCESS)
         {