eal: add strscpy function
authorGaetan Rivet <gaetan.rivet@6wind.com>
Tue, 11 Sep 2018 15:00:49 +0000 (17:00 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 19 Sep 2018 09:38:19 +0000 (11:38 +0200)
commitb0236c7cf76128b36b7f1e47d5bbd83e2e3f00de
treef3bb4e87b1f308025a797ba4ba1483396d9ac831
parentc4833b8ed3ec586a4991286076e0f57486aeb7df
eal: add strscpy function

The strncpy function has long been deemed unsafe for use,
in favor of strlcpy or snprintf.

While snprintf is standard and strlcpy is still largely available,
they both have issues regarding error checking and performance.

Both will force reading the source buffer past the requested size
if the input is not a proper c-string, and will return the expected
number of bytes copied, meaning that error checking needs to verify
that the number of bytes copied is not superior to the destination
size.

This contributes to awkward code flow, unclear error checking and
potential issues with malformed input.

The function strscpy has been discussed for some time already and
has been made available in the linux kernel[1].

Propose this new function as a safe alternative.

[1]: http://git.kernel.org/linus/30c44659f4a3

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Juhamatti Kuusisaari <juhamatti.kuusisaari@coriant.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_eal/common/eal_common_string_fns.c
lib/librte_eal/common/include/rte_string_fns.h
lib/librte_eal/rte_eal_version.map