• Wei Yongjun's avatar
    dccp: Always generate a Reset in response to option errors · ba1a6c7b
    Wei Yongjun authored
    RFC4340 states that if a packet is received with an option error (such as a
    Mandatory Option as the last byte of the option list), the endpoint should
    repond with a Reset.
    
    In the LISTEN and RESPOND states, the endpoint correctly reponds with Reset,
    while in the REQUEST/OPEN states, packets with option errors are just ignored.
    
    The packet sequence is as follows:
    
    Case 1:
    
      Endpoint A                           Endpoint B
      (CLOSED)                             (CLOSED)
    
                   <----------------       REQUEST
    
      RESPONSE     ----------------->      (*1)
      (with invalid option)
                   <----------------       RESET
                                           (with Reset Code 5, "Option Error")
    
      (*1) currently just ignored, no Reset is sent
    
    Case 2:
    
      Endpoint A                           Endpoint B
      (OPEN)                               (OPEN)
    
      DATA-ACK     ----------------->      (*2)
      (with invalid option)
                   <----------------       RESET
                                           (with Reset Code 5, "Option Error")
    
      (*2) currently just ignored, no Reset is sent
    
    This patch fixes the problem, by generating a Reset instead of silently
    ignoring option errors.
    Signed-off-by: default avatarWei Yongjun <yjwei@cn.fujitsu.com>
    Acked-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    ba1a6c7b
input.c 21.2 KB