From: Thomas Roessler <roessler@does-not-exist.org>
Date: Mon, 29 Oct 2001 23:21:48 +0000 (+0000)
Subject: Fix two places which _may_ look like buffer overflows, but aren't.
X-Git-Tag: mutt-1-3-23-1-rel~5
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=129e27176078d8ed37ba55f56078b51f37507a5e;p=mutt

Fix two places which _may_ look like buffer overflows, but aren't.
---

diff --git a/pager.c b/pager.c
index aee946c3..62869f67 100644
--- a/pager.c
+++ b/pager.c
@@ -1410,6 +1410,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
   static char searchbuf[STRING];
   char buffer[LONG_STRING];
   char helpstr[SHORT_STRING*2];
+  char tmphelp[SHORT_STRING*2];
   int maxLine, lastLine = 0;
   struct line_t *lineInfo;
   struct q_class_t *QuoteList = NULL;
@@ -1475,15 +1476,15 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
   mutt_compile_help (helpstr, sizeof (helpstr), MENU_PAGER, PagerHelp);
   if (IsHeader (extra))
   {
+    strfcpy (tmphelp, helpstr, sizeof (tmphelp));
     mutt_compile_help (buffer, sizeof (buffer), MENU_PAGER, PagerHelpExtra);
-    strcat (helpstr, "  ");	/* __STRCAT_CHECKED__ */	/* we don't seem to have any user-supplied data here */
-    strcat (helpstr, buffer);	/* __STRCAT_CHECKED__ */
+    snprintf (helpstr, sizeof (helpstr), "%s %s", tmphelp, buffer);
   }
   if (!InHelp)
   {
+    strfcpy (tmphelp, helpstr, sizeof (tmphelp));
     mutt_make_help (buffer, sizeof (buffer), _("Help"), MENU_PAGER, OP_HELP);
-    strcat (helpstr, "  ");	/* __STRCAT_CHECKED__ */	/* we don't seem to have any user-supplied data here */
-    strcat (helpstr, buffer);	/* __STRCAT_CHECKED__ */
+    snprintf (helpstr, sizeof (helpstr), "%s %s", tmphelp, buffer);
   }
 
   while (ch != -1)