aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/tipc/msg.c
diff options
context:
space:
mode:
authorTvrtko Ursulin <tursulin@ursulin.net>2025-02-05 09:29:14 +0000
committerTvrtko Ursulin <tursulin@ursulin.net>2025-02-05 09:29:14 +0000
commitc771600c6af14749609b49565ffb4cac2959710d (patch)
treee9be426f1b32598527127fd0fa1b265a7cc83044 /net/tipc/msg.c
parentdrm/i915/slpc: Add sysfs for SLPC power profiles (diff)
parentLinux 6.14-rc1 (diff)
downloadwireguard-linux-c771600c6af14749609b49565ffb4cac2959710d.tar.xz
wireguard-linux-c771600c6af14749609b49565ffb4cac2959710d.zip
Merge drm/drm-next into drm-intel-gt-next
We need 4ba4f1afb6a9 ("perf: Generic hotplug support for a PMU with a scope") in order to land a i915 PMU simplification and a fix. That landed in 6.12 and we are stuck at 6.9 so lets bump things forward. Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
Diffstat (limited to 'net/tipc/msg.c')
-rw-r--r--net/tipc/msg.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/tipc/msg.c b/net/tipc/msg.c
index 5c9fd4791c4b..76284fc538eb 100644
--- a/net/tipc/msg.c
+++ b/net/tipc/msg.c
@@ -142,9 +142,9 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf)
if (fragid == FIRST_FRAGMENT) {
if (unlikely(head))
goto err;
- *buf = NULL;
if (skb_has_frag_list(frag) && __skb_linearize(frag))
goto err;
+ *buf = NULL;
frag = skb_unshare(frag, GFP_ATOMIC);
if (unlikely(!frag))
goto err;
@@ -156,6 +156,11 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf)
if (!head)
goto err;
+ /* Either the input skb ownership is transferred to headskb
+ * or the input skb is freed, clear the reference to avoid
+ * bad access on error path.
+ */
+ *buf = NULL;
if (skb_try_coalesce(head, frag, &headstolen, &delta)) {
kfree_skb_partial(frag, headstolen);
} else {
@@ -179,7 +184,6 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf)
*headbuf = NULL;
return 1;
}
- *buf = NULL;
return 0;
err:
kfree_skb(*buf);