Use good m_ functions, because it smell like a flower, version 2.
[apps/madmutt.git] / copy.c
diff --git a/copy.c b/copy.c
index 5e0b7db..0c5f8b4 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -39,6 +39,7 @@ mutt_copy_hdr (FILE* in, FILE* out, off_t off_start, off_t off_end,
   int hdr_count;
   int x;
   char *this_one = NULL;
+  ssize_t this_one_len = 0, headers_len = 0;
   int error;
   int curline = 0;
 
@@ -140,8 +141,9 @@ mutt_copy_hdr (FILE* in, FILE* out, off_t off_start, off_t off_end,
         if (!headers[x])
           headers[x] = this_one;
         else {
-          p_realloc(&headers[x], m_strlen(headers[x]) + m_strlen(this_one) + 1);
-          strcat(headers[x], this_one);        /* __STRCAT_CHECKED__ */
+          headers_len =  m_strlen(headers[x]) + m_strlen(this_one) + 1;
+          p_realloc(&headers[x], headers_len);
+          m_strcat(headers[x], headers_len, this_one);
           p_delete(&this_one);
         }
 
@@ -207,13 +209,15 @@ mutt_copy_hdr (FILE* in, FILE* out, off_t off_start, off_t off_end,
        * abbreviations (curline is 0), $max_display_recips is 0 and
        * while the number hasn't reached $max_display_recips yet */
       else if (curline == 0 || MaxDispRecips == 0 || ++curline <= MaxDispRecips) {
-        p_realloc(&this_one, m_strlen(this_one) + m_strlen(buf) + 1);
-        strcat (this_one, buf); /* __STRCAT_CHECKED__ */
+        this_one_len = m_strlen(this_one) + m_strlen(buf) + 1;
+        p_realloc(&this_one, this_one_len);
+        m_strcat(this_one, this_one_len, buf);
       /* only for the first line which doesn't exeeds
        * $max_display_recips: abbreviate it */
       } else if (curline == MaxDispRecips+1) {
-        p_realloc(&this_one, m_strlen(this_one) + 5);
-        strcat (this_one, " ...");
+        this_one_len = m_strlen(this_one) + 5;
+        p_realloc(&this_one, this_one_len);
+        m_strcat(this_one, this_one_len, " ...");
       }
     }
   }                             /* while (ftello (in) < off_end) */
@@ -228,8 +232,9 @@ mutt_copy_hdr (FILE* in, FILE* out, off_t off_start, off_t off_end,
     if (!headers[x])
       headers[x] = this_one;
     else {
-      p_realloc(&headers[x], m_strlen(headers[x]) + m_strlen(this_one) + 1);
-      strcat (headers[x], this_one);    /* __STRCAT_CHECKED__ */
+      headers_len = m_strlen(headers[x]) + m_strlen(this_one) + 1;
+      p_realloc(&headers[x], headers_len);
+      m_strcat(headers[x], headers_len, this_one);
       p_delete(&this_one);
     }
 
@@ -794,12 +799,12 @@ static void format_address_header (char **h, address_t * a)
 
     l = m_strlen(buf);
     if (count && linelen + l > 74) {
-      strcpy (cbuf, "\n\t");    /* __STRCPY_CHECKED__ */
+      m_strcpy(cbuf, sizeof(cbuf), "\n\t");
       linelen = l + 8;
     }
     else {
       if (a->mailbox) {
-        strcpy (cbuf, " ");     /* __STRCPY_CHECKED__ */
+        m_strcpy(cbuf, sizeof(cbuf), " ");
         linelen++;
       }
       linelen += l;
@@ -807,18 +812,18 @@ static void format_address_header (char **h, address_t * a)
     if (!a->group && a->next && a->next->mailbox) {
       linelen++;
       buflen++;
-      strcpy (c2buf, ",");      /* __STRCPY_CHECKED__ */
+      m_strcpy(c2buf, sizeof(c2buf), ",");
     }
 
     buflen += l + m_strlen(cbuf) + m_strlen(c2buf);
     p_realloc(h, buflen);
-    strcat (*h, cbuf);          /* __STRCAT_CHECKED__ */
-    strcat (*h, buf);           /* __STRCAT_CHECKED__ */
-    strcat (*h, c2buf);         /* __STRCAT_CHECKED__ */
+    m_strcat(*h, buflen, cbuf);
+    m_strcat(*h, buflen, buf);
+    m_strcat(*h, buflen, c2buf);
   }
 
   /* Space for this was allocated in the beginning of this function. */
-  strcat (*h, "\n");            /* __STRCAT_CHECKED__ */
+  m_strcat(*h, buflen, "\n");
 }
 
 static int address_header_decode (char **h)