Commit fce9882a authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Fix memory leak and dummy warning

parent a9782f63
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <string.h> /* strdup() */ #include <string.h> /* strdup() */
#include <vlc_plugin.h> #include <vlc_plugin.h>
#include <vlc_cpu.h> #include <vlc_cpu.h>
#include <errno.h>
#include <sys/types.h> #include <sys/types.h>
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
...@@ -452,14 +453,24 @@ void CacheSave (vlc_object_t *p_this, const char *dir, ...@@ -452,14 +453,24 @@ void CacheSave (vlc_object_t *p_this, const char *dir,
free (filename); free (filename);
return; return;
} }
msg_Dbg (p_this, "saving plugins cache %s", filename);
FILE *file = utf8_fopen (tmpname, "wb"); FILE *file = utf8_fopen (tmpname, "wb");
if (file == NULL) if (file == NULL)
goto error; {
if (errno != EACCES && errno != ENOENT)
msg_Warn (p_this, "cannot create %s (%m)", tmpname);
goto out;
}
msg_Dbg (p_this, "saving plugins cache %s", tmpname);
if (CacheSaveBank (file, pp_cache, n)) if (CacheSaveBank (file, pp_cache, n))
goto error; {
msg_Warn (p_this, "cannot write %s (%m)", tmpname);
clearerr (file);
fclose (file);
utf8_unlink (tmpname);
goto out;
}
#ifndef WIN32 #ifndef WIN32
utf8_rename (tmpname, filename); /* atomically replace old cache */ utf8_rename (tmpname, filename); /* atomically replace old cache */
...@@ -469,17 +480,9 @@ void CacheSave (vlc_object_t *p_this, const char *dir, ...@@ -469,17 +480,9 @@ void CacheSave (vlc_object_t *p_this, const char *dir,
fclose (file); fclose (file);
utf8_rename (tmpname, filename); utf8_rename (tmpname, filename);
#endif #endif
return; /* success! */ out:
error:
msg_Warn (p_this, "cannot write %s (%m)", tmpname);
free (filename); free (filename);
free (tmpname); free (tmpname);
if (file != NULL)
{
clearerr (file);
fclose (file);
}
} }
static int CacheSaveConfig (FILE *, const module_t *); static int CacheSaveConfig (FILE *, const module_t *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment