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);
 }
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to