diff options
author | Oliver Hartkopp <oliver@hartkopp.net> | 2008-09-24 00:23:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-24 00:23:19 -0400 |
commit | 96ca4a2cc1454cf633a1e0796b7ef39d937b87ec (patch) | |
tree | 9031c5040ab0dadb3f2c5eb39ec9a4ffd1b53c2d /net/core | |
parent | d87798450a7635ab1bcc80271a13ce4a53b016a9 (diff) |
net: remove ifalias on empty given alias
This patch removes the potentially allocated ifalias when the (new) given alias is empty.
E.g. when setting
echo "" > /sys/class/net/eth0/ifalias
Signed-off-by: Oliver Hartkopp <oliver@hartkopp.net>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index e91390533999..a90737fe2472 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -967,6 +967,14 @@ int dev_set_alias(struct net_device *dev, const char *alias, size_t len) | |||
967 | if (len >= IFALIASZ) | 967 | if (len >= IFALIASZ) |
968 | return -EINVAL; | 968 | return -EINVAL; |
969 | 969 | ||
970 | if (!len) { | ||
971 | if (dev->ifalias) { | ||
972 | kfree(dev->ifalias); | ||
973 | dev->ifalias = NULL; | ||
974 | } | ||
975 | return 0; | ||
976 | } | ||
977 | |||
970 | dev->ifalias = krealloc(dev->ifalias, len+1, GFP_KERNEL); | 978 | dev->ifalias = krealloc(dev->ifalias, len+1, GFP_KERNEL); |
971 | if (!dev->ifalias) | 979 | if (!dev->ifalias) |
972 | return -ENOMEM; | 980 | return -ENOMEM; |