On Fri, 2014-11-07 at 10:21 +0200, Patrik Flykt wrote:

> -error:
> -     nlmsg_free(skb);
> -     return NULL;
> +     return 0;
>  }
>  
> -static void hswim_mcast_new_radio(int id, struct genl_info *info,
> +static void hwsim_mcast_new_radio(int id, struct genl_info *info,
>                                 struct hwsim_new_radio_params *param)
>  {
>       struct sk_buff *mcast_skb;
> +     void *data;
>  
> -     mcast_skb = build_radio_msg(HWSIM_CMD_NEW_RADIO, id, param);
> +     mcast_skb = genlmsg_new(GENLMSG_DEFAULT_SIZE, GFP_KERNEL);
>       if (!mcast_skb)
>               return;
>  
> +     data = genlmsg_put(mcast_skb, 0, 0, &hwsim_genl_family, 0,
> +                        HWSIM_CMD_NEW_RADIO);
> +     if (!data)
> +             goto out_err;
> +
> +     if (append_radio_msg(mcast_skb, id, param) < 0)
> +             goto out_err;
> +
> +     if (genlmsg_end(mcast_skb, data))
> +             goto out_err;
> +
>       hwsim_mcast_config_msg(mcast_skb, info);
> +     return;
> +
> +out_err:
> +     genlmsg_cancel(mcast_skb, data);
>  }

You seem to have lost the nlmsg_free() in error cases.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to