strncpy is trickier and a bit slower.
* src/function.c (func_realpath, func_abspath):
* src/misc.c (xstrndup):
Prefer memcpy or mempcpy to strncpy when the source length is known.
apath[3] = '/';
dest++;
root_len++;
- /* strncpy above copied one character too many. */
+ /* memcpy above copied one character too many. */
name--;
}
else
{
if (len < GET_PATH_MAX)
{
- char *rp;
+ char *rp, *inend;
struct stat st;
PATH_VAR (in);
PATH_VAR (out);
- strncpy (in, path, len);
- in[len] = '\0';
+ inend = mempcpy (in, path, len);
+ *inend = '\0';
#ifdef HAVE_REALPATH
ENULLLOOP (rp, realpath (in, out));
{
PATH_VAR (in);
PATH_VAR (out);
+ char *inend = mempcpy (in, path, len);
- strncpy (in, path, len);
- in[len] = '\0';
+ *inend = '\0';
if (abspath (in, out))
{
#else
result = xmalloc (length + 1);
if (length > 0)
- strncpy (result, str, length);
+ memcpy (result, str, length);
result[length] = '\0';
#endif