On Mon, Mar 12, 2018 at 11:32:59AM +0000, Bruce Richardson wrote: > The strncpy function is error prone for doing "safe" string copies, so > we generally try to use "snprintf" instead in the code. The function > "strlcpy" is a better alternative, since it better conveys the > intention of the programmer, and doesn't suffer from the non-null > terminating behaviour of it's n'ed brethern. > > The downside of this function is that it is not available by default > on linux, though standard in the BSD's. It is available on most > distros by installing "libbsd" package. > > This patch therefore provides the following in rte_string_fns.h to ensure > that strlcpy is available there: > * for BSD, include string.h as normal > * if RTE_USE_LIBBSD is set, include <bsd/string.h> > * if not set, fallback to snprintf for strlcpy > > Using make build system, the RTE_USE_LIBBSD is a hard-coded value to "n", > but when using meson, it's automatically set based on what is available > on the platform. > > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> > > ---- > RFC->v1: > * split patch into 2, to separate out snprintf replacement > * added missing include in mlx drivers > * adding linking support against libbsd when feature is enabled > * make strlcpy an inline function rather than macro > * fix support on BSD where strict posix compliance is requested and > therefore strlcpy is not available. > --- Forgot to include Stephen's reviewed-by from RFC:
Reviewed-by: Stephen Hemminger <step...@networkplumber.org>