On Tue, Aug 18, 2020 at 08:43:56PM -0700, Elliott Mitchell wrote: > On Wed, Aug 19, 2020 at 04:00:36AM +0200, Marek Marczykowski-G??recki wrote: > > diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c > > index f360f5e228..b039143b8a 100644 > > --- a/tools/libxl/libxl_utils.c > > +++ b/tools/libxl/libxl_utils.c > > > > } > > memset(un, 0, sizeof(struct sockaddr_un)); > > un->sun_family = AF_UNIX; > > - strncpy(un->sun_path, path, sizeof(un->sun_path)); > > + strncpy(un->sun_path, path, sizeof(un->sun_path) - 1); > > return 0; > > } > > While the earlier lines are okay, this line introduces an error.
Why exactly? strncpy() copies up to n characters, quoting its manual page: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated But since the whole struct is zeroed out initially, this should still result in a null terminated string, as the last byte of that buffer will not be touched by the strncpy. -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing?
signature.asc
Description: PGP signature