Message ID | 20250327141108.182585-1-richard120310@gmail.com |
---|---|
State | New |
Headers | show |
Series | [RFC] wifi: mac80211: Replace strncpy() with strscpy() | expand |
On Thu, Mar 27, 2025 at 10:11:08PM +0800, I Hsin Cheng wrote: > The name of vif which is "vif_name" should be NULL-terminated to be a > valid string, however "strncpy()" doesn't guarantee that. Replace it > with "strscpy()" to make sure the content within "vif_name" is > NULL-terminated. > > Link: https://github.com/KSPP/linux/issues/90 > Signed-off-by: I Hsin Cheng <richard120310@gmail.com> > --- > net/mac80211/trace.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h > index 72fad8ea8bb9..37f5b1c87709 100644 > --- a/net/mac80211/trace.h > +++ b/net/mac80211/trace.h > @@ -1725,7 +1725,7 @@ TRACE_EVENT(drv_switch_vif_chanctx, > SWITCH_ENTRY_ASSIGN(vif.vif_type, vif->type); > SWITCH_ENTRY_ASSIGN(vif.p2p, vif->p2p); > SWITCH_ENTRY_ASSIGN(link_id, link_conf->link_id); > - strncpy(local_vifs[i].vif.vif_name, > + strscpy(local_vifs[i].vif.vif_name, > sdata->name, > sizeof(local_vifs[i].vif.vif_name)); > SWITCH_ENTRY_ASSIGN(old_chandef.control_freq, > -- > 2.43.0 > > The name of vif which is "vif_name" should be NULL-terminated to be a Or maybe it should be trailing NULL-padding when sources is shorter, if it's the case we should consider strscpy_pad() or other alternatives. Let me know if there's any mistakes or tests I can help to validate, thanks! Best regards, I Hsin Cheng
On Thu, 2025-03-27 at 22:11 +0800, I Hsin Cheng wrote: > The name of vif which is "vif_name" should be NULL-terminated to be a > valid string And why should it be a "valid string"? This is just a buffer here in the trace code. We don't even (and cannot) suggest how to print this, so I think the userspace tool that does will just need to be careful, as with anything else. Don't see any issue here. johannes
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h index 72fad8ea8bb9..37f5b1c87709 100644 --- a/net/mac80211/trace.h +++ b/net/mac80211/trace.h @@ -1725,7 +1725,7 @@ TRACE_EVENT(drv_switch_vif_chanctx, SWITCH_ENTRY_ASSIGN(vif.vif_type, vif->type); SWITCH_ENTRY_ASSIGN(vif.p2p, vif->p2p); SWITCH_ENTRY_ASSIGN(link_id, link_conf->link_id); - strncpy(local_vifs[i].vif.vif_name, + strscpy(local_vifs[i].vif.vif_name, sdata->name, sizeof(local_vifs[i].vif.vif_name)); SWITCH_ENTRY_ASSIGN(old_chandef.control_freq,
The name of vif which is "vif_name" should be NULL-terminated to be a valid string, however "strncpy()" doesn't guarantee that. Replace it with "strscpy()" to make sure the content within "vif_name" is NULL-terminated. Link: https://github.com/KSPP/linux/issues/90 Signed-off-by: I Hsin Cheng <richard120310@gmail.com> --- net/mac80211/trace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)