Commit 26db9c9e authored by Matt Johnston's avatar Matt Johnston Committed by Jakub Kicinski
Browse files

net: mctp i3c: Copy headers if cloned



Use skb_cow_head() prior to modifying the tx skb. This is necessary
when the skb has been cloned, to avoid modifying other shared clones.

Signed-off-by: default avatarMatt Johnston <matt@codeconstruct.com.au>
Fixes: c8755b29 ("mctp i3c: MCTP I3C driver")
Link: https://patch.msgid.link/20250306-matt-i3c-cow-head-v1-1-d5e6a5495227@codeconstruct.com.au


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent dc5340c3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -506,10 +506,15 @@ static int mctp_i3c_header_create(struct sk_buff *skb, struct net_device *dev,
	   const void *saddr, unsigned int len)
{
	struct mctp_i3c_internal_hdr *ihdr;
	int rc;

	if (!daddr || !saddr)
		return -EINVAL;

	rc = skb_cow_head(skb, sizeof(struct mctp_i3c_internal_hdr));
	if (rc)
		return rc;

	skb_push(skb, sizeof(struct mctp_i3c_internal_hdr));
	skb_reset_mac_header(skb);
	ihdr = (void *)skb_mac_header(skb);