]> granicus.if.org Git - neomutt/commitdiff
drop unused param in mutt_bcache_put 782/head
authorRichard Russon <rich@flatcap.org>
Tue, 26 Sep 2017 16:51:01 +0000 (17:51 +0100)
committerRichard Russon <rich@flatcap.org>
Tue, 26 Sep 2017 16:53:56 +0000 (17:53 +0100)
The 'tmp' param was always true.
Factor it out.

Thanks to @gahr for the idea/patch.

bcache.c
bcache.h
imap/message.c
nntp.c
pop.c

index 509d688cf48382b96be8900ff9c18691edad9176..3624aa45e17c21cd0f4ed442e87da59b3931cee2 100644 (file)
--- a/bcache.c
+++ b/bcache.c
@@ -150,7 +150,7 @@ FILE *mutt_bcache_get(struct BodyCache *bcache, const char *id)
   return fp;
 }
 
-FILE *mutt_bcache_put(struct BodyCache *bcache, const char *id, bool tmp)
+FILE *mutt_bcache_put(struct BodyCache *bcache, const char *id)
 {
   char path[LONG_STRING];
   struct stat sb;
@@ -158,6 +158,12 @@ FILE *mutt_bcache_put(struct BodyCache *bcache, const char *id, bool tmp)
   if (!id || !*id || !bcache)
     return NULL;
 
+  if (snprintf(path, sizeof(path), "%s%s%s", bcache->path, id, ".tmp") >= sizeof(path))
+  {
+    mutt_error(_("Path too long: %s%s%s"), bcache->path, id, ".tmp");
+    return NULL;
+  }
+
   if (stat(bcache->path, &sb) == 0)
   {
     if (!S_ISDIR(sb.st_mode))
@@ -175,7 +181,6 @@ FILE *mutt_bcache_put(struct BodyCache *bcache, const char *id, bool tmp)
     }
   }
 
-  snprintf(path, sizeof(path), "%s%s%s", bcache->path, id, tmp ? ".tmp" : "");
   mutt_debug(3, "bcache: put: '%s'\n", path);
 
   return safe_fopen(path, "w+");
index 3ee9003d4e905a35d8103253bc559bb9e9356ab2..9913d5a66405bb042b7933e3b67323b94792d565 100644 (file)
--- a/bcache.h
+++ b/bcache.h
@@ -63,12 +63,13 @@ FILE *mutt_bcache_get(struct BodyCache *bcache, const char *id);
  * mutt_bcache_put - Create a file in the Body Cache
  * @param bcache Body Cache from mutt_bcache_open()
  * @param id     Per-mailbox unique identifier for the message
- * @param tmp    Returned FILE* is in a temporary location
- *               If set, use mutt_bcache_commit to put it into place
  * @retval FILE* on success
  * @retval NULL on failure
+ *
+ * The returned FILE* is in a temporary location.
+ * Use mutt_bcache_commit to put it into place
  */
-FILE *mutt_bcache_put(struct BodyCache *bcache, const char *id, bool tmp);
+FILE *mutt_bcache_put(struct BodyCache *bcache, const char *id);
 
 /**
  * mutt_bcache_commit - Move a temporary file into the Body Cache
index e04aae051394c2ccdc336ac48886002022db2f4d..ee1be60d83656f1040ab76326b7b8fc819a161e8 100644 (file)
@@ -109,7 +109,7 @@ static FILE *msg_cache_put(struct ImapData *idata, struct Header *h)
 
   idata->bcache = msg_cache_open(idata);
   snprintf(id, sizeof(id), "%u-%u", idata->uid_validity, HEADER_DATA(h)->uid);
-  return mutt_bcache_put(idata->bcache, id, true);
+  return mutt_bcache_put(idata->bcache, id);
 }
 
 static int msg_cache_commit(struct ImapData *idata, struct Header *h)
diff --git a/nntp.c b/nntp.c
index 07ba5262939393b14f15914679cb256f16b387ce..f0b72f0408308bd91eb2b5bd2651341f7568d9e2 100644 (file)
--- a/nntp.c
+++ b/nntp.c
@@ -1618,7 +1618,7 @@ static int nntp_open_message(struct Context *ctx, struct Message *msg, int msgno
 
     /* create new cache file */
     mutt_message(fetch_msg);
-    msg->fp = mutt_bcache_put(nntp_data->bcache, article, true);
+    msg->fp = mutt_bcache_put(nntp_data->bcache, article);
     if (!msg->fp)
     {
       mutt_mktemp(buf, sizeof(buf));
diff --git a/pop.c b/pop.c
index 405ae0d2be7b3febec635268c8b15dcc2019b357..2847b0e5e2e4fd00057cb8c8126d388aabb88c57 100644 (file)
--- a/pop.c
+++ b/pop.c
@@ -599,7 +599,7 @@ static int pop_fetch_message(struct Context *ctx, struct Message *msg, int msgno
                        NetInc, h->content->length + h->content->offset - 1);
 
     /* see if we can put in body cache; use our cache as fallback */
-    if (!(msg->fp = mutt_bcache_put(pop_data->bcache, h->data, true)))
+    if (!(msg->fp = mutt_bcache_put(pop_data->bcache, h->data)))
     {
       /* no */
       bcache = 0;