On Tue, 26 Aug 2003 18:38:12 +0300
Dan Aloni <da-x@xxxxxxx> wrote:
> Sysctl assumes its ctl_table.procname field is const, but the
> networking points ctl_table.procname to dev->name. When renaming
> a network device using SIOCSIFNAME, dev->name is modified and
> sysctl's assumption breaks, causing this behaviour, at least:
>
> 1. sysctl wouldn't be able to remove the proc entry when the
> device requests to be unregistered, because it would be
> using the new name instead of the old one.
> 2. proc entries for devices remain with the old name after
> rename.
>
> This change includes allocating the current device name to a
> new copy upon registering with sysctl, plus re-registering with
> sysctl when the device is renamed.
Conceptually this change is OK. But please don't put generic
things like a strdup() implementation statically into
net/ipv4/devinet.c, it does not belong there.
|