svn commit: r311233 - head/contrib/netbsd-tests/fs/tmpfs
Jilles Tjoelker
jilles at stack.nl
Wed Jan 4 23:36:53 UTC 2017
On Wed, Jan 04, 2017 at 02:46:36AM +0000, Ngie Cooper wrote:
> Author: ngie
> Date: Wed Jan 4 02:46:36 2017
> New Revision: 311233
> URL: https://svnweb.freebsd.org/changeset/base/311233
> Log:
> Fix Coverity issues
> - Initialize .sun_len before passing it to strlcpy and bind.
> - Close fd on error
> MFC after: 3 days
> Reported by: Coverity
> CID: 978283, 979581
> Modified:
> head/contrib/netbsd-tests/fs/tmpfs/h_tools.c
> Modified: head/contrib/netbsd-tests/fs/tmpfs/h_tools.c
> ==============================================================================
> --- head/contrib/netbsd-tests/fs/tmpfs/h_tools.c Wed Jan 4 02:43:33 2017 (r311232)
> +++ head/contrib/netbsd-tests/fs/tmpfs/h_tools.c Wed Jan 4 02:46:36 2017 (r311233)
> @@ -243,12 +243,19 @@ sockets_main(int argc, char **argv)
> return EXIT_FAILURE;
> }
>
> +#ifdef __FreeBSD__
> + addr.sun_len = sizeof(addr.sun_path);
> + (void)strlcpy(addr.sun_path, argv[1], addr.sun_len);
> +#else
> (void)strlcpy(addr.sun_path, argv[1], sizeof(addr.sun_path));
> +#endif
> addr.sun_family = PF_UNIX;
> -
> error = bind(fd, (struct sockaddr *)&addr, sizeof(addr));
> if (error == -1) {
> warn("connect");
> +#ifdef __FreeBSD__
> + (void)close(fd);
> +#endif
> return EXIT_FAILURE;
> }
>
It would be better to avoid naming the non-portable sun_len field if it
is just to make Coverity happy. I suggest initializing the structure
with designated initializers or memset().
Apart from that, the value for sun_len is wrong; it should be the length
of the whole structure and not just the sun_path part. Fortunately, the
field is ignored by bind(), which uses the addrlen parameter instead.
On a more general note, refactoring tests without a way to verify they
have not been changed to always pass is risky :(
--
Jilles Tjoelker
More information about the svn-src-all
mailing list