Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Feb 2017 03:22:00 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r313520 - stable/10/contrib/netbsd-tests/fs/tmpfs
Message-ID:  <201702100322.v1A3M0hu023505@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Fri Feb 10 03:22:00 2017
New Revision: 313520
URL: https://svnweb.freebsd.org/changeset/base/313520

Log:
  MFC r311233,r311377:
  
  r311233:
  
  Fix Coverity issues
  
  - Initialize .sun_len before passing it to strlcpy and bind.
  - Close fd on error
  
  CID:		978283, 979581
  
  r311377:
  
  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.

Modified:
  stable/10/contrib/netbsd-tests/fs/tmpfs/h_tools.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/netbsd-tests/fs/tmpfs/h_tools.c
==============================================================================
--- stable/10/contrib/netbsd-tests/fs/tmpfs/h_tools.c	Fri Feb 10 03:17:11 2017	(r313519)
+++ stable/10/contrib/netbsd-tests/fs/tmpfs/h_tools.c	Fri Feb 10 03:22:00 2017	(r313520)
@@ -243,12 +243,21 @@ sockets_main(int argc, char **argv)
 		return EXIT_FAILURE;
 	}
 
+#ifdef	__FreeBSD__
+	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__
+		(void)close(fd);
+#endif
 		return EXIT_FAILURE;
 	}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702100322.v1A3M0hu023505>