[LEDE-DEV] [OpenWrt-Devel] [PATCH netifd 1/3] device: Fix device find failure in avl list due to device name change

Eyal Birger eyal.birger at gmail.com
Mon Jun 6 03:38:30 PDT 2016


Hi Hans,

On Mon, Jun 6, 2016 at 1:03 PM, Hans Dedecker <dedeckeh at gmail.com> wrote:
> As device name is used as key in avl list a device name change will break the avl find logic.
> Function device_set_ifname offers api to set the device name and re-inserts the avl node in the list
> when the avl key value is changed.
>
> Signed-off-by: Hans Dedecker <dedeckeh at gmail.com>
> ---
>
> diff --git a/device.c b/device.c
> index 06c4820..7149d86 100644
> --- a/device.c
> +++ b/device.c
> @@ -422,14 +422,14 @@ void device_init_virtual(struct device *dev, const struct device_type *type, con
>         assert(dev);
>         assert(type);
>
> -       if (name)
> -               strncpy(dev->ifname, name, IFNAMSIZ);
> -
>         D(DEVICE, "Initialize device '%s'\n", dev->ifname);

Isn't this debug print broken by this change?

>         INIT_SAFE_LIST(&dev->users);
>         INIT_SAFE_LIST(&dev->aliases);
>         dev->type = type;
>
> +       if (name)
> +               device_set_ifname(dev, name);
> +


Eyal.



More information about the Lede-dev mailing list