|
@@ -253,13 +253,14 @@ static struct net_device *__ip_tunnel_create(struct net *net,
|
|
struct net_device *dev;
|
|
struct net_device *dev;
|
|
char name[IFNAMSIZ];
|
|
char name[IFNAMSIZ];
|
|
|
|
|
|
- if (parms->name[0])
|
|
|
|
|
|
+ err = -E2BIG;
|
|
|
|
+ if (parms->name[0]) {
|
|
|
|
+ if (!dev_valid_name(parms->name))
|
|
|
|
+ goto failed;
|
|
strlcpy(name, parms->name, IFNAMSIZ);
|
|
strlcpy(name, parms->name, IFNAMSIZ);
|
|
- else {
|
|
|
|
- if (strlen(ops->kind) > (IFNAMSIZ - 3)) {
|
|
|
|
- err = -E2BIG;
|
|
|
|
|
|
+ } else {
|
|
|
|
+ if (strlen(ops->kind) > (IFNAMSIZ - 3))
|
|
goto failed;
|
|
goto failed;
|
|
- }
|
|
|
|
strlcpy(name, ops->kind, IFNAMSIZ);
|
|
strlcpy(name, ops->kind, IFNAMSIZ);
|
|
strncat(name, "%d", 2);
|
|
strncat(name, "%d", 2);
|
|
}
|
|
}
|