]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - net/tls/tls_sw.c
bpf: Sockmap/tls, skmsg can have wrapped skmsg that needs extra chaining
[mirror_ubuntu-eoan-kernel.git] / net / tls / tls_sw.c
index 86335f7d5e40bd9c4966fd299c278732ba60fd89..ab633b316833af138762ea2773aca849f906cf2c 100644 (file)
@@ -724,6 +724,12 @@ static int tls_push_record(struct sock *sk, int flags,
                sg_mark_end(sk_msg_elem(msg_pl, i));
        }
 
+       if (msg_pl->sg.end < msg_pl->sg.start) {
+               sg_chain(&msg_pl->sg.data[msg_pl->sg.start],
+                        MAX_SKB_FRAGS - msg_pl->sg.start + 1,
+                        msg_pl->sg.data);
+       }
+
        i = msg_pl->sg.start;
        sg_chain(rec->sg_aead_in, 2, &msg_pl->sg.data[i]);