File truncate.patch of Package mutt

---
 bcache.c            |    2 +-
 browser.c           |    6 +++---
 buffy.c             |    4 ++--
 commands.c          |    2 +-
 imap/browse.c       |    2 +-
 imap/imap.c         |   18 +++++++++---------
 imap/imap_private.h |    2 +-
 imap/message.c      |    2 +-
 lib.c               |    2 +-
 lib.h               |    2 +-
 mh.c                |   23 +++++++++++++----------
 mutt_sasl.c         |    2 +-
 mutt_ssl_gnutls.c   |   18 +++++++++---------
 pager.c             |    2 +-
 pgppubring.c        |    2 +-
 smime.c             |    2 +-
 sort.c              |    2 +-
 17 files changed, 48 insertions(+), 45 deletions(-)

--- bcache.c
+++ bcache.c	2018-07-17 09:42:34.633928921 +0000
@@ -128,7 +128,7 @@ FILE* mutt_bcache_get(body_cache_t *bcac
 
 FILE* mutt_bcache_put(body_cache_t *bcache, const char *id, int tmp)
 {
-  char path[_POSIX_PATH_MAX];
+  char path[_POSIX_PATH_MAX+64];
   FILE* fp;
   char* s;
   struct stat sb;
--- browser.c
+++ browser.c	2018-07-17 09:42:34.633928921 +0000
@@ -502,7 +502,7 @@ static int examine_directory (MUTTMENU *
 static int examine_mailboxes (MUTTMENU *menu, struct browser_state *state)
 {
   struct stat s;
-  char buffer[LONG_STRING];
+  char buffer[LONG_STRING+16];
   BUFFY *tmp = Incoming;
 
   if (!Incoming)
@@ -548,7 +548,7 @@ static int examine_mailboxes (MUTTMENU *
     if (mx_is_maildir (tmp->path))
     {
       struct stat st2;
-      char md[_POSIX_PATH_MAX];
+      char md[_POSIX_PATH_MAX+16];
 
       snprintf (md, sizeof (md), "%s/new", tmp->path);
       if (stat (md, &s) < 0)
@@ -635,7 +635,7 @@ static int file_tag (MUTTMENU *menu, int
 
 void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *numfiles)
 {
-  char buf[_POSIX_PATH_MAX];
+  char buf[_POSIX_PATH_MAX+16];
   char prefix[_POSIX_PATH_MAX] = "";
   char helpstr[LONG_STRING];
   char title[STRING];
--- buffy.c
+++ buffy.c	2018-07-17 09:42:34.637928849 +0000
@@ -313,8 +313,8 @@ int mutt_parse_mailboxes (BUFFER *path,
 static int buffy_maildir_check_dir (BUFFY* mailbox, const char *dir_name, int check_new,
                                     int check_stats)
 {
-  char path[_POSIX_PATH_MAX];
-  char msgpath[_POSIX_PATH_MAX];
+  char path[2*_POSIX_PATH_MAX+8];
+  char msgpath[2*_POSIX_PATH_MAX+8];
   DIR *dirp;
   struct dirent *de;
   char *p;
--- commands.c
+++ commands.c	2018-07-17 09:42:34.637928849 +0000
@@ -241,7 +241,7 @@ int mutt_display_message (HEADER *cur)
 
 void ci_bounce_message (HEADER *h)
 {
-  char prompt[SHORT_STRING];
+  char prompt[SHORT_STRING+16];
   char scratch[SHORT_STRING];
   char buf[HUGE_STRING] = { 0 };
   ADDRESS *adr = NULL;
--- imap/browse.c
+++ imap/browse.c	2018-07-17 09:42:34.637928849 +0000
@@ -43,7 +43,7 @@ int imap_browse (char* path, struct brow
 {
   IMAP_DATA* idata;
   IMAP_LIST list;
-  char buf[LONG_STRING];
+  char buf[LONG_STRING+64];
   char mbox[LONG_STRING];
   char munged_mbox[LONG_STRING];
   char list_cmd[5];
--- imap/imap.c
+++ imap/imap.c	2018-07-17 09:44:01.836348503 +0000
@@ -59,7 +59,7 @@ int imap_access (const char* path)
 {
   IMAP_DATA* idata;
   IMAP_MBOX mx;
-  char buf[LONG_STRING];
+  char buf[LONG_STRING+64];
   char mailbox[LONG_STRING];
   char mbox[LONG_STRING];
   int rc;
@@ -115,7 +115,7 @@ int imap_access (const char* path)
 
 int imap_create_mailbox (IMAP_DATA* idata, char* mailbox)
 {
-  char buf[LONG_STRING], mbox[LONG_STRING];
+  char buf[LONG_STRING+16], mbox[LONG_STRING];
 
   imap_munge_mbox_name (idata, mbox, sizeof (mbox), mailbox);
   snprintf (buf, sizeof (buf), "CREATE %s", mbox);
@@ -133,7 +133,7 @@ int imap_rename_mailbox (IMAP_DATA* idat
 {
   char oldmbox[LONG_STRING];
   char newmbox[LONG_STRING];
-  char buf[LONG_STRING];
+  char buf[2*LONG_STRING+64];
 
   imap_munge_mbox_name (idata, oldmbox, sizeof (oldmbox), mx->mbox);
   imap_munge_mbox_name (idata, newmbox, sizeof (newmbox), newname);
@@ -148,7 +148,7 @@ int imap_rename_mailbox (IMAP_DATA* idat
 
 int imap_delete_mailbox (CONTEXT* ctx, IMAP_MBOX mx)
 {
-  char buf[LONG_STRING], mbox[LONG_STRING];
+  char buf[LONG_STRING+16], mbox[LONG_STRING];
   IMAP_DATA *idata;
 
   if (!ctx || !ctx->data) {
@@ -588,7 +588,7 @@ static int imap_open_mailbox (CONTEXT* c
   IMAP_DATA *idata;
   IMAP_STATUS* status;
   char buf[LONG_STRING];
-  char bufout[LONG_STRING];
+  char bufout[LONG_STRING+64];
   int count = 0;
   IMAP_MBOX mx, pmx;
   int rc;
@@ -1572,7 +1572,7 @@ int imap_buffy_check (int force, int che
   IMAP_DATA* lastdata = NULL;
   BUFFY* mailbox;
   char name[LONG_STRING];
-  char command[LONG_STRING];
+  char command[LONG_STRING+64];
   char munged[LONG_STRING];
   int buffies = 0;
 
@@ -1663,7 +1663,7 @@ int imap_status (char* path, int queue)
   static int queued = 0;
 
   IMAP_DATA *idata;
-  char buf[LONG_STRING];
+  char buf[LONG_STRING+64];
   char mbox[LONG_STRING];
   IMAP_STATUS* status;
 
@@ -1927,7 +1927,7 @@ int imap_search (CONTEXT* ctx, const pat
 int imap_subscribe (char *path, int subscribe)
 {
   IMAP_DATA *idata;
-  char buf[LONG_STRING];
+  char buf[LONG_STRING+64];
   char mbox[LONG_STRING];
   char errstr[STRING];
   int mblen;
@@ -2057,7 +2057,7 @@ imap_complete_hosts (char *dest, size_t
 int imap_complete(char* dest, size_t dlen, char* path) {
   IMAP_DATA* idata;
   char list[LONG_STRING];
-  char buf[LONG_STRING];
+  char buf[LONG_STRING+64];
   IMAP_LIST listresp;
   char completion[LONG_STRING];
   int clen;
--- imap/imap_private.h
+++ imap/imap_private.h	2018-07-17 09:42:34.641928776 +0000
@@ -73,7 +73,7 @@
 #define IMAP_CMD_POLL    (1<<3)
 
 /* length of "DD-MMM-YYYY HH:MM:SS +ZZzz" (null-terminated) */
-#define IMAP_DATELEN 27
+#define IMAP_DATELEN 37
 
 enum
 {
--- imap/message.c
+++ imap/message.c	2018-07-17 09:42:34.641928776 +0000
@@ -753,7 +753,7 @@ int imap_append_message (CONTEXT *ctx, M
 {
   IMAP_DATA* idata;
   FILE *fp;
-  char buf[LONG_STRING];
+  char buf[LONG_STRING+IMAP_DATELEN+SHORT_STRING+64];
   char mbox[LONG_STRING];
   char mailbox[LONG_STRING];
   char internaldate[IMAP_DATELEN];
--- lib.c
+++ lib.c	2018-07-17 09:42:34.637928849 +0000
@@ -583,7 +583,7 @@ int mutt_rmtree (const char* path)
 {
   DIR* dirp;
   struct dirent* de;
-  char cur[_POSIX_PATH_MAX];
+  char cur[2*_POSIX_PATH_MAX+16];
   struct stat statbuf;
   int rc = 0;
 
--- lib.h
+++ lib.h	2018-07-17 09:42:34.637928849 +0000
@@ -59,7 +59,7 @@
 
 # define HUGE_STRING     8192
 # define LONG_STRING     1024
-# define STRING          256
+# define STRING          512
 # define SHORT_STRING    128
 
 /*
--- mh.c
+++ mh.c	2018-07-17 09:42:34.637928849 +0000
@@ -852,7 +852,7 @@ static int maildir_parse_dir (CONTEXT *
 
     if (subdir)
     {
-      char tmp[_POSIX_PATH_MAX];
+      char tmp[2*_POSIX_PATH_MAX+16];
       snprintf (tmp, sizeof (tmp), "%s/%s", subdir, de->d_name);
       h->path = safe_strdup (tmp);
     }
@@ -1406,7 +1406,7 @@ static void maildir_flags (char *dest, s
   
   if (hdr && (hdr->flagged || hdr->replied || hdr->read || hdr->deleted || hdr->old || hdr->maildir_flags))
   {
-    char tmp[LONG_STRING];
+    char tmp[LONG_STRING], *ptr;
     snprintf (tmp, sizeof (tmp),
 	      "%s%s%s%s%s",
 	      hdr->flagged ? "F" : "",
@@ -1415,7 +1415,10 @@ static void maildir_flags (char *dest, s
 	      NONULL(hdr->maildir_flags));
     if (hdr->maildir_flags)
       qsort (tmp, strlen (tmp), 1, ch_compar);
-    snprintf (dest, destlen, ":2,%s", tmp);
+    /* snprintf (dest, destlen, ":2,%s", tmp); */
+    strcpy(dest, ":2,");
+    ptr = stpncpy(dest+3, tmp, destlen-3);
+    *ptr = '\0';
   }
 }
 
@@ -1561,7 +1564,7 @@ static int _maildir_commit_message (CONT
   char subdir[4];
   char suffix[16];
   char path[_POSIX_PATH_MAX];
-  char full[_POSIX_PATH_MAX];
+  char full[2*_POSIX_PATH_MAX+16];
   char *s;
 
   if (safe_fsync_close (&msg->fp))
@@ -1586,7 +1589,7 @@ static int _maildir_commit_message (CONT
     snprintf (path, _POSIX_PATH_MAX, "%s/%lld.%u_%d.%s%s", subdir,
 	      (long long)time (NULL), (unsigned int)getpid (), Counter++,
 	      NONULL (Hostname), suffix);
-    snprintf (full, _POSIX_PATH_MAX, "%s/%s", ctx->path, path);
+    snprintf (full, sizeof(full), "%s/%s", ctx->path, path);
 
     dprint (2, (debugfile, "_maildir_commit_message (): renaming %s to %s.\n",
 		msg->path, full));
@@ -1825,9 +1828,9 @@ static int maildir_sync_message (CONTEXT
     /* we just have to rename the file. */
 
     char newpath[_POSIX_PATH_MAX];
-    char partpath[_POSIX_PATH_MAX];
-    char fullpath[_POSIX_PATH_MAX];
-    char oldpath[_POSIX_PATH_MAX];
+    char partpath[_POSIX_PATH_MAX+64];
+    char fullpath[2*_POSIX_PATH_MAX+16];
+    char oldpath[2*_POSIX_PATH_MAX+16];
     char suffix[16];
     char *p;
 
@@ -2371,9 +2374,9 @@ static int mh_check_mailbox (CONTEXT * c
 static FILE *_maildir_open_find_message (const char *folder, const char *unique,
 				  const char *subfolder)
 {
-  char dir[_POSIX_PATH_MAX];
+  char dir[2*_POSIX_PATH_MAX+16];
   char tunique[_POSIX_PATH_MAX];
-  char fname[_POSIX_PATH_MAX];
+  char fname[3*_POSIX_PATH_MAX];
 
   DIR *dp;
   struct dirent *de;
--- mutt_sasl.c
+++ mutt_sasl.c	2018-07-17 09:42:34.637928849 +0000
@@ -80,7 +80,7 @@ static int getnameinfo_err(int ret)
  * a protection buffer. */ 
 #define MUTT_SASL_MAXBUF 65536
 
-#define IP_PORT_BUFLEN 1024
+#define IP_PORT_BUFLEN (NI_MAXHOST+NI_MAXSERV+8)
 
 static sasl_callback_t mutt_sasl_callbacks[5];
 
--- mutt_ssl_gnutls.c
+++ mutt_ssl_gnutls.c	2018-07-17 09:42:34.637928849 +0000
@@ -862,7 +862,7 @@ static int tls_check_one_certificate (co
   menu->max = 25;
   menu->dialog = (char **) safe_calloc (1, menu->max * sizeof (char *));
   for (i = 0; i < menu->max; i++)
-    menu->dialog[i] = (char *) safe_calloc (1, SHORT_STRING * sizeof (char));
+    menu->dialog[i] = (char *) safe_calloc (1, STRING * sizeof (char));
   mutt_push_current_menu (menu);
 
   row = 0;
@@ -898,10 +898,10 @@ static int tls_check_one_certificate (co
                                      dn_country, &buflen) != 0)
     dn_country[0] = '\0';
 
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s  %s", dn_common_name, dn_email);
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s", dn_organization);
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s", dn_organizational_unit);
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s  %s  %s",
+  snprintf (menu->dialog[row++], STRING, "   %s  %s", dn_common_name, dn_email);
+  snprintf (menu->dialog[row++], STRING, "   %s", dn_organization);
+  snprintf (menu->dialog[row++], STRING, "   %s", dn_organizational_unit);
+  snprintf (menu->dialog[row++], STRING, "   %s  %s  %s",
             dn_locality, dn_province, dn_country);
   row++;
 
@@ -937,10 +937,10 @@ static int tls_check_one_certificate (co
                                             dn_country, &buflen) != 0)
     dn_country[0] = '\0';
 
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s  %s", dn_common_name, dn_email);
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s", dn_organization);
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s", dn_organizational_unit);
-  snprintf (menu->dialog[row++], SHORT_STRING, "   %s  %s  %s",
+  snprintf (menu->dialog[row++], STRING, "   %s  %s", dn_common_name, dn_email);
+  snprintf (menu->dialog[row++], STRING, "   %s", dn_organization);
+  snprintf (menu->dialog[row++], STRING, "   %s", dn_organizational_unit);
+  snprintf (menu->dialog[row++], STRING, "   %s  %s  %s",
             dn_locality, dn_province, dn_country);
   row++;
 
--- pager.c
+++ pager.c	2018-07-17 09:42:34.637928849 +0000
@@ -1911,7 +1911,7 @@ mutt_pager (const char *banner, const ch
 {
   static char searchbuf[STRING] = "";
   char buffer[LONG_STRING];
-  char helpstr[SHORT_STRING*2];
+  char helpstr[LONG_STRING+SHORT_STRING*2+16];
   char tmphelp[SHORT_STRING*2];
   int i, ch = 0, rc = -1;
   int err, first = 1;
--- pgppubring.c
+++ pgppubring.c	2018-07-17 09:42:34.637928849 +0000
@@ -86,7 +86,7 @@ int main (int argc, char * const argv[])
   char *env_pgppath, *env_home;
 
   char pgppath[_POSIX_PATH_MAX];
-  char kring[_POSIX_PATH_MAX];
+  char kring[_POSIX_PATH_MAX+64];
 
   while ((c = getopt (argc, argv, "f25sk:S")) != EOF)
   {
--- smime.c
+++ smime.c	2018-07-17 09:42:34.637928849 +0000
@@ -179,7 +179,7 @@ static const char *_mutt_fmt_smime_comma
       if (!optional)
       {
 	char path[_POSIX_PATH_MAX];
-	char buf1[LONG_STRING], buf2[LONG_STRING];
+	char buf1[LONG_STRING], buf2[LONG_STRING+16];
 	struct stat sb;
 
 	strfcpy (path, NONULL (SmimeCALocation), sizeof (path));
--- sort.c
+++ sort.c	2018-07-17 09:42:34.637928849 +0000
@@ -40,7 +40,7 @@ static sort_t *AuxSort = NULL;
   unset_option(OPTAUXSORT); \
 } \
 if (!code) \
-  code = (*((HEADER **)a))->index - (*((HEADER **)b))->index;
+  code = (*((HEADER **)a))->index - (*((HEADER **)b))->index
 
 static int compare_score (const void *a, const void *b)
 {
openSUSE Build Service is sponsored by