tls: rx: fix the false positive warning
authorJakub Kicinski <kuba@kernel.org>
Wed, 27 Jul 2022 03:15:24 +0000 (20:15 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 29 Jul 2022 04:50:00 +0000 (21:50 -0700)
I went too far in the accessor conversion, we can't use tls_strp_msg()
after decryption because the message may not be ready. What we care
about on this path is that the output skb is detached, i.e. we didn't
somehow just turn around and used the input skb with its TCP data
still attached. So look at the anchor directly.

Fixes: 84c61fe1a75b ("tls: rx: do not use the standard strparser")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/tls/tls_sw.c

index 8bac7ea..17db8c8 100644 (file)
@@ -2026,7 +2026,7 @@ put_on_rx_list_err:
                        bool partially_consumed = chunk > len;
                        struct sk_buff *skb = darg.skb;
 
-                       DEBUG_NET_WARN_ON_ONCE(darg.skb == tls_strp_msg(ctx));
+                       DEBUG_NET_WARN_ON_ONCE(darg.skb == ctx->strp.anchor);
 
                        if (async) {
                                /* TLS 1.2-only, to_decrypt must be text len */