]> granicus.if.org Git - neomutt/commitdiff
Remove old bcache tmpfile before trying to create new one. Closes #3163.
authorBrendan Cully <brendan@kublai.com>
Mon, 26 Jan 2009 20:32:30 +0000 (12:32 -0800)
committerBrendan Cully <brendan@kublai.com>
Mon, 26 Jan 2009 20:32:30 +0000 (12:32 -0800)
ChangeLog
bcache.c

index 4ef5bbd31261578b1f53288d832530a6f90e50bc..bb842e88cbb49ad5ff276ae5411e03f79292d3d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-01-20 12:34 -0800  RenĂ© Clerc  <rene@clerc.nl>  (2006526d1d26)
+
+       * po/nl.po: Updated Dutch translation
+
+2009-01-19 20:39 -0800  Ivan Vilata i Balaguer  <ivan@selidor.net>  (038f1e5cdaea)
+
+       * po/ca.po: Updated Catalan translation
+
 2009-01-14 20:04 +0000  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (ddf48761aacf)
 
        * imap/browse.c: Use imap_utf7_encode instead of
index 60e5fdca587dbf16ddf4e64d9dedd6a61cfac7c9..81538d22ab9fef4f8a3e83ece058431a3042da3d 100644 (file)
--- a/bcache.c
+++ b/bcache.c
@@ -136,6 +136,13 @@ FILE* mutt_bcache_put(body_cache_t *bcache, const char *id, int tmp)
   snprintf (path, sizeof (path), "%s%s%s", bcache->path, id,
             tmp ? ".tmp" : "");
 
+  if ((fp = safe_fopen (path, "w+")))
+    goto out;
+
+  if (errno == EEXIST)
+    /* clean up leftover tmp file */
+    mutt_unlink (path);
+
   s = strchr (path + 1, '/');
   while (!(fp = safe_fopen (path, "w+")) && errno == ENOENT && s)
   {
@@ -147,6 +154,7 @@ FILE* mutt_bcache_put(body_cache_t *bcache, const char *id, int tmp)
     s = strchr (s + 1, '/');
   }
 
+  out:
   dprint (3, (debugfile, "bcache: put: '%s'\n", path));
 
   return fp;