sctp: fix transport encap_port update in sctp_vtag_verify
authorXin Long <lucien.xin@gmail.com>
Thu, 14 Oct 2021 04:50:55 +0000 (00:50 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Oct 2021 10:21:10 +0000 (11:21 +0100)
transport encap_port update should be updated when sctp_vtag_verify()
succeeds, namely, returns 1, not returns 0. Correct it in this patch.

While at it, also fix the indentation.

Fixes: a1dd2cf2f1ae ("sctp: allow changing transport encap_port by peer packets")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/sm.h

index 2eb6d7c..f37c7a5 100644 (file)
@@ -384,11 +384,11 @@ sctp_vtag_verify(const struct sctp_chunk *chunk,
         * Verification Tag value does not match the receiver's own
         * tag value, the receiver shall silently discard the packet...
         */
-        if (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)
-                return 1;
+       if (ntohl(chunk->sctp_hdr->vtag) != asoc->c.my_vtag)
+               return 0;
 
        chunk->transport->encap_port = SCTP_INPUT_CB(chunk->skb)->encap_port;
-       return 0;
+       return 1;
 }
 
 /* Check VTAG of the packet matches the sender's own tag and the T bit is