svn commit: r287842 - head/sbin/ifconfig

Allan Jude allanjude at FreeBSD.org
Wed Sep 16 03:03:20 UTC 2015


Author: allanjude
Date: Wed Sep 16 03:03:19 2015
New Revision: 287842
URL: https://svnweb.freebsd.org/changeset/base/287842

Log:
  Make ifconfig always exit with an error code if an important ioctl fails
  
  PR:		203062
  Arm Twisting by:	Kristof Provost
  Reviewed by:	kp
  Approved by:	bapt (mentor)
  MFC after:	2 weeks
  Relnotes:	yes
  Sponsored by:	ScaleEngine Inc.
  Sponsored by:	vBSDCon
  Differential Revision:	https://reviews.freebsd.org/D3644

Modified:
  head/sbin/ifconfig/ifconfig.c

Modified: head/sbin/ifconfig/ifconfig.c
==============================================================================
--- head/sbin/ifconfig/ifconfig.c	Wed Sep 16 01:44:11 2015	(r287841)
+++ head/sbin/ifconfig/ifconfig.c	Wed Sep 16 03:03:19 2015	(r287842)
@@ -995,7 +995,7 @@ setifmetric(const char *val, int dummy _
 	strncpy(ifr.ifr_name, name, sizeof (ifr.ifr_name));
 	ifr.ifr_metric = atoi(val);
 	if (ioctl(s, SIOCSIFMETRIC, (caddr_t)&ifr) < 0)
-		warn("ioctl (set metric)");
+		err(1, "ioctl SIOCSIFMETRIC (set metric)");
 }
 
 static void
@@ -1005,7 +1005,7 @@ setifmtu(const char *val, int dummy __un
 	strncpy(ifr.ifr_name, name, sizeof (ifr.ifr_name));
 	ifr.ifr_mtu = atoi(val);
 	if (ioctl(s, SIOCSIFMTU, (caddr_t)&ifr) < 0)
-		warn("ioctl (set mtu)");
+		err(1, "ioctl SIOCSIFMTU (set mtu)");
 }
 
 static void
@@ -1015,15 +1015,12 @@ setifname(const char *val, int dummy __u
 	char *newname;
 
 	newname = strdup(val);
-	if (newname == NULL) {
-		warn("no memory to set ifname");
-		return;
-	}
+	if (newname == NULL)
+		err(1, "no memory to set ifname");
 	ifr.ifr_data = newname;
 	if (ioctl(s, SIOCSIFNAME, (caddr_t)&ifr) < 0) {
-		warn("ioctl (set name)");
 		free(newname);
-		return;
+		err(1, "ioctl SIOCSIFNAME (set name)");
 	}
 	strlcpy(name, newname, sizeof(name));
 	free(newname);
@@ -1050,7 +1047,7 @@ setifdescr(const char *val, int dummy __
 	}
 
 	if (ioctl(s, SIOCSIFDESCR, (caddr_t)&ifr) < 0)
-		warn("ioctl (set descr)");
+		err(1, "ioctl SIOCSIFDESCR (set descr)");
 
 	free(newdescr);
 }


More information about the svn-src-all mailing list