Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
        unsigned int optlen = dh->dccph_doff*4 - __dccp_hdr_len(dh);
        unsigned int i;
 
-       if (dh->dccph_doff * 4 < __dccp_hdr_len(dh)) {
-               *hotdrop = true;
-               return false;
-       }
+       if (dh->dccph_doff * 4 < __dccp_hdr_len(dh))
+               goto invalid;
 
        if (!optlen)
                return false;
        op = skb_header_pointer(skb, protoff + optoff, optlen, dccp_optbuf);
        if (op == NULL) {
                /* If we don't have the whole header, drop packet. */
-               spin_unlock_bh(&dccp_buflock);
-               *hotdrop = true;
-               return false;
+               goto partial;
        }
 
        for (i = 0; i < optlen; ) {
 
        spin_unlock_bh(&dccp_buflock);
        return false;
+
+partial:
+       spin_unlock_bh(&dccp_buflock);
+invalid:
+       *hotdrop = true;
+       return false;
 }