Date: Thu, 5 Jan 2017 07:46:57 +0000 (UTC) From: Ngie Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r311377 - head/contrib/netbsd-tests/fs/tmpfs Message-ID: <201701050746.v057kvFH056936@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Thu Jan 5 07:46:57 2017 New Revision: 311377 URL: https://svnweb.freebsd.org/changeset/base/311377 Log: Redo fix for CID 979581 The previous change was flawed in terms of how it calculated the buffer length for the sockaddr_un object. Use SUN_LEN where appropriate and mute the Coverity complaint by using memset(.., 0, ..) to zero out the entire structure instead of setting .sun_len to a bogus value and strlcpy'ing in the contents of argv[1]. SUN_LEN is now being passed to bind(2) as well. For some odd reason this wasn't flagged as a bug with Coverity. Reported by: jilles, jmallett MFC after: 2 days X-MFC with: r311233 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 Thu Jan 5 07:42:08 2017 (r311376) +++ head/contrib/netbsd-tests/fs/tmpfs/h_tools.c Thu Jan 5 07:46:57 2017 (r311377) @@ -244,13 +244,15 @@ sockets_main(int argc, char **argv) } #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)); + memset(&addr, 0, sizeof(addr)); #endif + (void)strlcpy(addr.sun_path, argv[1], sizeof(addr.sun_path)); addr.sun_family = PF_UNIX; +#ifdef __FreeBSD__ + error = bind(fd, (struct sockaddr *)&addr, SUN_LEN(&addr)); +#else error = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); +#endif if (error == -1) { warn("connect"); #ifdef __FreeBSD__
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701050746.v057kvFH056936>