Replace two remaining strcpy() calls in curses interface.
authorDavid Griffith <dave@661.org>
Tue, 12 Feb 2019 12:45:03 +0000 (04:45 -0800)
committerDavid Griffith <dave@661.org>
Tue, 12 Feb 2019 12:45:03 +0000 (04:45 -0800)
src/curses/ux_input.c

index 3c842b3b01feae8caf3da3965146c9e4e9d04edc..afbccf701b98ffea06746254f836c4a95ec8a369 100644 (file)
@@ -359,7 +359,8 @@ static int unix_history_back(zchar *str, int searchlen, int maxlen)
        }
     } while (strlen( *history_view) > (size_t) maxlen
             || (searchlen != 0 && strncmp( (char *)str, *history_view, searchlen)));
-    strcpy((char *)str + searchlen, *history_view + searchlen);
+    strncpy((char *)str + searchlen, *history_view + searchlen,
+               (size_t) maxlen - (strlen((char *)str) + searchlen));
     return 1;
 }
 
@@ -384,7 +385,8 @@ static int unix_history_forward(zchar *str, int searchlen, int maxlen)
        }
     } while (strlen( *history_view) > (size_t) maxlen
             || (searchlen != 0 && strncmp( (char *)str, *history_view, searchlen)));
-    strcpy((char *)str + searchlen, *history_view + searchlen);
+    strncpy((char *)str + searchlen, *history_view + searchlen,
+               (size_t) maxlen - (strlen((char *)str) + searchlen));
     return 1;
 }