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);
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++;
}
{
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
- 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);
}
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;
}
- 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;
* 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
+ p_sys->i_fd = i_fd;
if (list_read(p_sys, &p_sys->list) != VLC_SUCCESS)
{