}
} 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;
}
}
} 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;
}