diff options
author | Brian Behlendorf <[email protected]> | 2018-11-20 10:37:49 -0800 |
---|---|---|
committer | GitHub <[email protected]> | 2018-11-20 10:37:49 -0800 |
commit | 8005ca4f749f71397197292452ca539a25286b89 (patch) | |
tree | 33e2c05893126f7f00c5a80b6fefafcccafdb479 /tests | |
parent | 0cd5c941d097ec170177e1a5f97f08ebd32eff85 (diff) |
Move strlcat, strlcpy, and strnlen
Move strlcat() and strlcpy() from .c source files in to the libspl
string.h header. By changing these compatibility functions to static
inline functions they can included as needed without requiring linking
with the libspl.so library.
Remove strnlen() which is barely used in the source, and has been
provided by glibc since v2.10.
Finally, convert four instances of strncpy() to strlcpy() in
libzfs_input_check.c which were causing build warnings when compiling
with gcc 8.2.1. For example:
libzfs_input_check.c: In function ‘zfs_destroy’:
libzfs_input_check.c:651:9: error: ‘strncpy’ specified bound \
4096 equals destination size [-Werror=stringop-truncation]
(void) strncpy(zc.zc_name, dataset, sizeof (zc.zc_name));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Reviewed-by: Olaf Faaland <[email protected]>
Reviewed-by: Richard Laager <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #8116
Diffstat (limited to 'tests')
-rw-r--r-- | tests/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tests/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c b/tests/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c index 64066d419..3d5c7b64a 100644 --- a/tests/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c +++ b/tests/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c @@ -147,7 +147,7 @@ lzc_ioctl_run(zfs_ioc_t ioc, const char *name, nvlist_t *innvl, int expected) } packed = fnvlist_pack(innvl, &size); - (void) strncpy(zc.zc_name, name, sizeof (zc.zc_name)); + (void) strlcpy(zc.zc_name, name, sizeof (zc.zc_name)); zc.zc_name[sizeof (zc.zc_name) - 1] = '\0'; zc.zc_nvlist_src = (uint64_t)(uintptr_t)packed; zc.zc_nvlist_src_size = size; @@ -234,7 +234,7 @@ lzc_ioctl_test(zfs_ioc_t ioc, const char *name, nvlist_t *required, char pname[MAXNAMELEN]; data_type_t ptype; - strncpy(pname, nvpair_name(pair), sizeof (pname)); + strlcpy(pname, nvpair_name(pair), sizeof (pname)); pname[sizeof (pname) - 1] = '\0'; ptype = nvpair_type(pair); fnvlist_remove_nvpair(input, pair); @@ -648,7 +648,7 @@ zfs_destroy(const char *dataset) zfs_cmd_t zc = {"\0"}; int err; - (void) strncpy(zc.zc_name, dataset, sizeof (zc.zc_name)); + (void) strlcpy(zc.zc_name, dataset, sizeof (zc.zc_name)); zc.zc_name[sizeof (zc.zc_name) - 1] = '\0'; zc.zc_objset_type = DMU_OST_ZFS; err = ioctl(zfs_fd, ZFS_IOC_DESTROY, &zc); @@ -760,7 +760,7 @@ zfs_ioc_input_tests(const char *pool) ioc_tested[ioc_skip[i] - ZFS_IOC_FIRST] = B_TRUE; } - (void) strncpy(zc.zc_name, pool, sizeof (zc.zc_name)); + (void) strlcpy(zc.zc_name, pool, sizeof (zc.zc_name)); zc.zc_name[sizeof (zc.zc_name) - 1] = '\0'; for (unsigned ioc = ZFS_IOC_FIRST; ioc < ZFS_IOC_LAST; ioc++) { |