svn commit: r299516 - head/sbin/ping

Don Lewis truckman at FreeBSD.org
Thu May 12 05:43:55 UTC 2016


Author: truckman
Date: Thu May 12 05:43:54 2016
New Revision: 299516
URL: https://svnweb.freebsd.org/changeset/base/299516

Log:
  Check for socket creation success before calling bind().
  
  Reported by:	Coverity
  CID:		1194209

Modified:
  head/sbin/ping/ping.c

Modified: head/sbin/ping/ping.c
==============================================================================
--- head/sbin/ping/ping.c	Thu May 12 05:12:24 2016	(r299515)
+++ head/sbin/ping/ping.c	Thu May 12 05:43:54 2016	(r299516)
@@ -285,6 +285,16 @@ main(int argc, char *const *argv)
 		err(EX_NOPERM, "setuid() failed");
 	uid = getuid();
 
+	if (ssend < 0) {
+		errno = ssend_errno;
+		err(EX_OSERR, "ssend socket");
+	}
+
+	if (srecv < 0) {
+		errno = srecv_errno;
+		err(EX_OSERR, "srecv socket");
+	}
+
 	alarmtimeout = df = preload = tos = 0;
 
 	outpack = outpackhdr + sizeof(struct ip);
@@ -625,16 +635,6 @@ main(int argc, char *const *argv)
 	}
 #endif
 
-	if (ssend < 0) {
-		errno = ssend_errno;
-		err(EX_OSERR, "ssend socket");
-	}
-
-	if (srecv < 0) {
-		errno = srecv_errno;
-		err(EX_OSERR, "srecv socket");
-	}
-
 	if (connect(ssend, (struct sockaddr *)&whereto, sizeof(whereto)) != 0)
 		err(1, "connect");
 


More information about the svn-src-head mailing list