projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nterface-ip: remove superfluous iface check in interface_ip_set_enabled()
[project/netifd.git]
/
system-linux.c
diff --git
a/system-linux.c
b/system-linux.c
index
9933201
..
2a108e2
100644
(file)
--- a/
system-linux.c
+++ b/
system-linux.c
@@
-665,7
+665,7
@@
static int system_bridge_if(const char *bridge, struct device *dev, int cmd, voi
ifr.ifr_ifindex = dev->ifindex;
else
ifr.ifr_data = data;
ifr.ifr_ifindex = dev->ifindex;
else
ifr.ifr_data = data;
- strncpy(ifr.ifr_name, bridge, sizeof(ifr.ifr_name));
+ strncpy(ifr.ifr_name, bridge, sizeof(ifr.ifr_name)
- 1
);
return ioctl(sock_ioctl, cmd, &ifr);
}
return ioctl(sock_ioctl, cmd, &ifr);
}
@@
-768,7
+768,7
@@
int system_bridge_delif(struct device *bridge, struct device *dev)
int system_if_resolve(struct device *dev)
{
struct ifreq ifr;
int system_if_resolve(struct device *dev)
{
struct ifreq ifr;
- strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name));
+ strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)
- 1
);
if (!ioctl(sock_ioctl, SIOCGIFINDEX, &ifr))
return ifr.ifr_ifindex;
else
if (!ioctl(sock_ioctl, SIOCGIFINDEX, &ifr))
return ifr.ifr_ifindex;
else
@@
-780,8
+780,10
@@
static int system_if_flags(const char *ifname, unsigned add, unsigned rem)
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr);
+ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1);
+ if (ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr) < 0)
+ return -1;
+
ifr.ifr_flags |= add;
ifr.ifr_flags &= ~rem;
return ioctl(sock_ioctl, SIOCSIFFLAGS, &ifr);
ifr.ifr_flags |= add;
ifr.ifr_flags &= ~rem;
return ioctl(sock_ioctl, SIOCSIFFLAGS, &ifr);
@@
-1248,7
+1250,8
@@
static int system_vlan(struct device *dev, int id)
.u.name_type = VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD,
};
.u.name_type = VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD,
};
- ioctl(sock_ioctl, SIOCSIFVLAN, &ifr);
+ if (ioctl(sock_ioctl, SIOCSIFVLAN, &ifr) < 0)
+ return -1;
if (id < 0) {
ifr.cmd = DEL_VLAN_CMD;
if (id < 0) {
ifr.cmd = DEL_VLAN_CMD;
@@
-1330,7
+1333,7
@@
system_if_get_settings(struct device *dev, struct device_settings *s)
char buf[10];
memset(&ifr, 0, sizeof(ifr));
char buf[10];
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name));
+ strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)
- 1
);
if (ioctl(sock_ioctl, SIOCGIFMTU, &ifr) == 0) {
s->mtu = ifr.ifr_mtu;
if (ioctl(sock_ioctl, SIOCGIFMTU, &ifr) == 0) {
s->mtu = ifr.ifr_mtu;
@@
-1427,7
+1430,7
@@
system_if_apply_settings(struct device *dev, struct device_settings *s, unsigned
char buf[12];
memset(&ifr, 0, sizeof(ifr));
char buf[12];
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name));
+ strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)
- 1
);
if (s->flags & DEV_OPT_MTU & apply_mask) {
ifr.ifr_mtu = s->mtu;
if (ioctl(sock_ioctl, SIOCSIFMTU, &ifr) < 0)
if (s->flags & DEV_OPT_MTU & apply_mask) {
ifr.ifr_mtu = s->mtu;
if (ioctl(sock_ioctl, SIOCSIFMTU, &ifr) < 0)
@@
-1716,7
+1719,7
@@
system_if_dump_info(struct device *dev, struct blob_buf *b)
memset(&ecmd, 0, sizeof(ecmd));
memset(&ifr, 0, sizeof(ifr));
memset(&ecmd, 0, sizeof(ecmd));
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name));
+ strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)
- 1
);
ifr.ifr_data = (caddr_t) &ecmd;
ecmd.cmd = ETHTOOL_GSET;
ifr.ifr_data = (caddr_t) &ecmd;
ecmd.cmd = ETHTOOL_GSET;
@@
-2252,7
+2255,7
@@
static int tunnel_ioctl(const char *name, int cmd, void *p)
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
+ strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)
- 1
);
ifr.ifr_ifru.ifru_data = p;
return ioctl(sock_ioctl, cmd, &ifr);
}
ifr.ifr_ifru.ifru_data = p;
return ioctl(sock_ioctl, cmd, &ifr);
}
@@
-2963,7
+2966,7
@@
static int system_add_proto_tunnel(const char *name, const uint8_t proto, const
if (p.iph.ttl && p.iph.frag_off == 0)
return -EINVAL;
if (p.iph.ttl && p.iph.frag_off == 0)
return -EINVAL;
- strncpy(p.name, name, sizeof(p.name));
+ strncpy(p.name, name, sizeof(p.name)
- 1
);
switch (p.iph.protocol) {
case IPPROTO_IPIP:
switch (p.iph.protocol) {
case IPPROTO_IPIP: