Re: [PATCH bpf-next v4 2/6] bpf: Add syscall common attrs support for xdp link_create

From: Leon Hwang

Date: Mon Oct 26 2026 - 11:07:53 EST


On 2026/10/25 09:19, Alexei Starovoitov wrote:
> On Sat, Oct 24, 2026 at 08:36 AM Leon Hwang <leon.hwang@xxxxxxxxx> wrote:
>> Instead of passing bpf log or extack to bpf_xdp_link_attach(), pass an
>> errmsg pointer to receive the kstrdup() error msg, because
>
> [...]
>
>> 2) passing extack will access underlying driver string out of dev_put()
>> guard, which will crash kernel when the device is unloaded
>> concurrently.
>
> Netlink does exactly that.
> rtnl_setlink() looks up the dev with __dev_get_by_index(), so no refcnt,
> do_setlink() -> dev_change_xdp_fd(dev, extack, ...) calls into the same
> drivers that set the same strings, rtnl is unlocked, and only then
> netlink_rcv_skb() -> netlink_ack() does strlen(extack->_msg).
> All extack users work this way. kstrdup() in one of them fixes nothing.

Oops, I was overthinking about it when self-reviewing the patch. Failed
to verify the describing crash issue just now. I should verify my review
when self-reviewing.

>
> Instead of patches 1 and 2:
>

Will change like this.

>
> I'm think I gave this suggestion earlier. Why did you go with strdup()?
>

Sorry for my overthinking. Will verify my review to my patches in the
future.

Thanks,
Leon