File tree Expand file tree Collapse file tree 2 files changed +2
-4
lines changed Expand file tree Collapse file tree 2 files changed +2
-4
lines changed Original file line number Diff line number Diff line change @@ -618,7 +618,7 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
618618	   by tcp. Feel free to propose better solution. 
619619					       --ANK (980728) 
620620	 */ 
621- 	if  (np -> rxopt .all )
621+ 	if  (np -> rxopt .all   &&   sk -> sk_state   !=   DCCP_LISTEN )
622622		opt_skb  =  skb_clone_and_charge_r (skb , sk );
623623
624624	if  (sk -> sk_state  ==  DCCP_OPEN ) { /* Fast path */ 
Original file line number Diff line number Diff line change @@ -1618,7 +1618,7 @@ int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
16181618	   by tcp. Feel free to propose better solution. 
16191619					       --ANK (980728) 
16201620	 */ 
1621- 	if  (np -> rxopt .all )
1621+ 	if  (np -> rxopt .all   &&   sk -> sk_state   !=   TCP_LISTEN )
16221622		opt_skb  =  skb_clone_and_charge_r (skb , sk );
16231623
16241624	if  (sk -> sk_state  ==  TCP_ESTABLISHED ) { /* Fast path */ 
@@ -1656,8 +1656,6 @@ int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
16561656				if  (reason )
16571657					goto reset ;
16581658			}
1659- 			if  (opt_skb )
1660- 				__kfree_skb (opt_skb );
16611659			return  0 ;
16621660		}
16631661	} else 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments