SCTP_INC_STATS(net, SCTP_MIB_OUTCTRLCHUNKS);
 
-       /* If the chunk length is invalid, we don't want to process
-        * the reset of the packet.
-        */
-       if (!sctp_chunk_length_valid(chunk, sizeof(struct sctp_chunkhdr)))
-               return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
-
        /* We need to discard the rest of the packet to prevent
         * potential boomming attacks from additional bundled chunks.
         * This is documented in SCTP Threats ID.
 {
        struct sctp_chunk *chunk = arg;
 
+       if (!sctp_vtag_verify(chunk, asoc))
+               asoc = NULL;
+
        /* Make sure that the SHUTDOWN_ACK chunk has a valid length. */
        if (!sctp_chunk_length_valid(chunk, sizeof(struct sctp_chunkhdr)))
                return sctp_sf_violation_chunklen(net, ep, asoc, type, arg,