]> granicus.if.org Git - neomutt/commitdiff
Fix imap_pretty_mailbox() call to url_ciss_tostring()
authorKevin McCarthy <kevin@8t8.us>
Sun, 10 Mar 2019 12:05:12 +0000 (20:05 +0800)
committerRichard Russon <rich@flatcap.org>
Tue, 9 Apr 2019 11:54:27 +0000 (12:54 +0100)
Pass the correct buffer size through, so the strfcpy added in the next
commit doesn't write past the end of the buffer.

Co-authored-by: Richard Russon <rich@flatcap.org>
imap/imap.c
imap/imap.h
imap/util.c
muttlib.c

index dcf87b4b7b9521fde5612cce3eeeb2e237f78be1..d67100e1d0920d8cd948c0ea221d76de3354639f 100644 (file)
@@ -2498,7 +2498,7 @@ int imap_path_pretty(char *buf, size_t buflen, const char *folder)
   if (!buf || !folder)
     return -1;
 
-  imap_pretty_mailbox(buf, folder);
+  imap_pretty_mailbox(buf, buflen, folder);
   return 0;
 }
 
index b2bf2a2b9089126f2d83fe3e7789d569dde36aaf..fa55eb700a1806093d6d0a0b728b164d7ab99a17 100644 (file)
@@ -106,7 +106,7 @@ void imap_logout_all(void);
 
 /* util.c */
 int imap_parse_path(const char *path, struct ConnAccount *account, char *mailbox, size_t mailboxlen);
-void imap_pretty_mailbox(char *path, const char *folder);
+void imap_pretty_mailbox(char *path, size_t pathlen, const char *folder);
 
 int imap_wait_keepalive(pid_t pid);
 void imap_keepalive(void);
index 54923b8ffdd746a23aec871e881ab7e330e5cf9d..a0e890a6d981877f860b4a5b5d5200a075a58779 100644 (file)
@@ -679,12 +679,13 @@ int imap_mxcmp(const char *mx1, const char *mx2)
 
 /**
  * imap_pretty_mailbox - Prettify an IMAP mailbox name
- * @param path   Mailbox name to be tidied
- * @param folder Path to use for '+' abbreviations
+ * @param path    Mailbox name to be tidied
+ * @param pathlen Length of path
+ * @param folder  Path to use for '+' abbreviations
  *
  * Called by mutt_pretty_mailbox() to make IMAP paths look nice.
  */
-void imap_pretty_mailbox(char *path, const char *folder)
+void imap_pretty_mailbox(char *path, size_t pathlen, const char *folder)
 {
   struct ConnAccount target_conn_account, home_conn_account;
   struct Url url;
@@ -736,10 +737,7 @@ void imap_pretty_mailbox(char *path, const char *folder)
 fallback:
   mutt_account_tourl(&target_conn_account, &url);
   url.path = target_mailbox;
-  /* FIXME: That hard-coded constant is bogus. But we need the actual
-   *   size of the buffer from mutt_pretty_mailbox. And these pretty
-   *   operations usually shrink the result. Still... */
-  url_tostring(&url, path, 1024, 0);
+  url_tostring(&url, path, pathlen, 0);
 }
 
 /**
index 8d6253e9495ee780c228baa3f78b41ffba80691d..7ed72108851a3400e2acba9740483fbb3b6b9169 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -613,7 +613,7 @@ void mutt_pretty_mailbox(char *buf, size_t buflen)
 
   if ((scheme == U_IMAP) || (scheme == U_IMAPS))
   {
-    imap_pretty_mailbox(buf, C_Folder);
+    imap_pretty_mailbox(buf, buflen, C_Folder);
     return;
   }