/* Generate random names until we find one that doesn't exist. */
while (true) {
name[0] = '\0';
- strcpy(name, template);
+ (void)strlcpy(name, template, IFNAMSIZ);
exists = false;
for (i = 0; i < strlen(name); i++) {
}
freeifaddrs(ifaddr);
- return strcpy(template, name);
+ (void)strlcpy(template, name, strlen(template) + 1);
+
+ return template;
}
int setup_private_host_hw_addr(char *veth1)
char *token, *saveptr = NULL;
char netdev_link[IFNAMSIZ];
char buffer[MAXPATHLEN] = {0};
+ size_t retlen;
if (netdev->type != LXC_NET_VETH) {
ERROR("Network type %d not support for unprivileged use", netdev->type);
return -1;
}
- if (strlen(token) >= IFNAMSIZ) {
+ retlen = strlcpy(netdev->priv.veth_attr.veth1, token, IFNAMSIZ);
+ if (retlen >= IFNAMSIZ) {
ERROR("Host side veth device name returned by lxc-user-nic is "
"too long");
return -E2BIG;
}
- strcpy(netdev->priv.veth_attr.veth1, token);
/* netdev->priv.veth_attr.ifindex */
token = strtok_r(NULL, ":", &saveptr);
*/
if (netdev->name[0] == '\0') {
if (netdev->type == LXC_NET_PHYS)
- strcpy(netdev->name, netdev->link);
+ (void)strlcpy(netdev->name, netdev->link, IFNAMSIZ);
else
- strcpy(netdev->name, "eth%d");
+ (void)strlcpy(netdev->name, "eth%d", IFNAMSIZ);
}
/* rename the interface name */
* name of the network device in the child's network namespace. We will
* later on send this information back to the parent.
*/
- strcpy(netdev->name, current_ifname);
+ (void)strlcpy(netdev->name, current_ifname, IFNAMSIZ);
/* set a mac address */
if (netdev->hwaddr) {