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
This commit is contained in:
Allan Jude 2015-09-16 03:03:19 +00:00
parent a14bc739d5
commit cc59771c4a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=287842

View File

@ -995,7 +995,7 @@ setifmetric(const char *val, int dummy __unused, int s,
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 __unused, int s,
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 __unused, int s,
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 __unused, int s,
}
if (ioctl(s, SIOCSIFDESCR, (caddr_t)&ifr) < 0)
warn("ioctl (set descr)");
err(1, "ioctl SIOCSIFDESCR (set descr)");
free(newdescr);
}