On Tue, Sep 1, 2026 at 12:14 AM Chaithanya Lagisetty <[email protected]> wrote: > > nl_add_rtattr() unconditionally does memcpy(RTA_DATA(rta), data, len). > For zero-length attributes the callers pass data == NULL and len == 0, > for example the RTA_PREFSRC attribute added for proxy MFC entries: > > if (mfc_attr->proxy) > rta = nl_add_rtattr(nlmsg, rta, RTA_PREFSRC, NULL, 0); > > Passing a NULL pointer to memcpy() is undefined behaviour even when the > length is zero, because its source parameter is marked > __attribute__((nonnull)); it is flagged by fortify/-Wnonnull.
It's not flagged since NULL is passed via nl_add_rtattr(), not directly to memcpy(). Also, the behaviour will be well-defined with N3322 in C2y. Given there is no real harm and we do not bother revisiting this, there is no need to change that.

