1. 05 2月, 2008 2 次提交
    • W
      [SCTP]: Fix kernel panic while received AUTH chunk with BAD shared key identifier · 7cc08b55
      Wei Yongjun 提交于
      If SCTP-AUTH is enabled, received AUTH chunk with BAD shared key 
      identifier will cause kernel panic.
      
      Test as following:
      step1: enabled /proc/sys/net/sctp/auth_enable
      step 2:  connect  to SCTP server with auth capable. Association is 
      established between endpoints. Then send a AUTH chunk with a bad 
      shareid, SCTP server will kernel panic after received that AUTH chunk.
      
      SCTP client                   SCTP server
        INIT         ---------->  
          (with auth capable)
                     <----------    INIT-ACK
                                    (with auth capable)
        COOKIE-ECHO  ---------->
                     <----------    COOKIE-ACK
        AUTH         ---------->
      
      
      AUTH chunk is like this:
        AUTH chunk
          Chunk type: AUTH (15)
          Chunk flags: 0x00
          Chunk length: 28
          Shared key identifier: 10
          HMAC identifier: SHA-1 (1)
          HMAC: 0000000000000000000000000000000000000000
      
      The assignment of NULL to key can safely be removed, since key_for_each 
      (which is just list_for_each_entry under the covers does an initial 
      assignment to key anyway).
      
      If the endpoint_shared_keys list is empty, or if the key_id being 
      requested does not exist, the function as it currently stands returns 
      the actuall list_head (in this case endpoint_shared_keys.  Since that 
      list_head isn't surrounded by an actuall data structure, the last 
      iteration through list_for_each_entry will do a container_of on key, and 
      we wind up returning a bogus pointer, instead of NULL, as we should.
      
      > Neil Horman wrote:
      >> On Tue, Jan 22, 2008 at 05:29:20PM +0900, Wei Yongjun wrote:
      >>
      >> FWIW, Ack from me.  The assignment of NULL to key can safely be 
      >> removed, since
      >> key_for_each (which is just list_for_each_entry under the covers does 
      >> an initial
      >> assignment to key anyway).
      >> If the endpoint_shared_keys list is empty, or if the key_id being 
      >> requested does
      >> not exist, the function as it currently stands returns the actuall 
      >> list_head (in
      >> this case endpoint_shared_keys.  Since that list_head isn't 
      >> surrounded by an
      >> actuall data structure, the last iteration through 
      >> list_for_each_entry will do a
      >> container_of on key, and we wind up returning a bogus pointer, 
      >> instead of NULL,
      >> as we should.  Wei's patch corrects that.
      >>
      >> Regards
      >> Neil
      >>
      >> Acked-by: Neil Horman <nhorman@tuxdriver.com>
      >>
      >
      > Yep, the patch is correct.
      >
      > Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
      >
      > -vlad
      >
      Signed-off-by: NWei Yongjun <yjwei@cn.fujitsu.com>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Acked-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7cc08b55
    • W
      [SCTP]: Fix kernel panic while received AUTH chunk while enabled auth · d2f19fa1
      Wei Yongjun 提交于
      If STCP is started while /proc/sys/net/sctp/auth_enable is set 0 and
      association is established between endpoints. Then if
      /proc/sys/net/sctp/auth_enable is set 1, a received AUTH chunk will
      cause kernel panic.
      
      Test as following:
      step 1: echo 0> /proc/sys/net/sctp/auth_enable
      step 2:
      
         SCTP client                  SCTP server
            INIT          --------->
                          <---------   INIT-ACK
            COOKIE-ECHO   --------->
                          <---------   COOKIE-ACK
      step 3:
          echo 1> /proc/sys/net/sctp/auth_enable
      step 4:
         SCTP client                  SCTP server
             AUTH        ----------->  Kernel Panic
      
      
      This patch fix this probleam to treat AUTH chunk as unknow chunk if peer 
      has initialized with no auth capable.
      
      > Sorry for the delay.  Was on vacation without net access.
      >
      > Wei Yongjun wrote:
      >>
      >>
      >> This patch fix this probleam to treat AUTH chunk as unknow chunk if 
      >> peer has initialized with no auth capable.
      >>
      >> Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
      >
      > Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
      >
      >>
      Signed-off-by: NWei Yongjun <yjwei@cn.fujitsu.com>
      Acked-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d2f19fa1
  2. 03 2月, 2008 1 次提交
  3. 01 2月, 2008 1 次提交
  4. 29 1月, 2008 20 次提交
  5. 09 1月, 2008 3 次提交
  6. 21 12月, 2007 1 次提交
  7. 17 12月, 2007 1 次提交
  8. 07 12月, 2007 2 次提交
  9. 29 11月, 2007 5 次提交
  10. 20 11月, 2007 1 次提交
  11. 12 11月, 2007 1 次提交
    • J
      Fix memory leak in discard case of sctp_sf_abort_violation() · 9abed245
      Jesper Juhl 提交于
      In net/sctp/sm_statefuns.c::sctp_sf_abort_violation() we may leak
      the storage allocated for 'abort' by returning from the function
      without using or freeing it. This happens in case
      "sctp_auth_recv_cid(SCTP_CID_ABORT, asoc)" is true and we jump to
      the 'discard' label.
      Spotted by the Coverity checker.
      
      The simple fix is to simply move the creation of the "abort chunk"
      to after the possible jump to the 'discard' label. This way we don't
      even have to allocate the memory at all in the problem case.
      Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      9abed245
  12. 10 11月, 2007 2 次提交
    • V
      SCTP: Always flush the queue when uncorcking. · 7d54dc68
      Vlad Yasevich 提交于
      When the code calls uncork, trigger a queue flush, even
      if the queue was not corked.  Most callers that explicitely
      cork the queue will have additinal checks to see if they 
      corked it.  Callers who do not cork the queue expect packets
      to flow when they call uncork.
      
      The scneario that showcased this bug happend when we were not
      able to bundle DATA with outgoing COOKIE-ECHO.  As a result
      the data just sat in the outqueue and did not get transmitted.
      The application expected a response, but nothing happened.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      7d54dc68
    • V
      SCTP: Fix PR-SCTP to deliver all the accumulated ordered chunks · cd3ae8e6
      Vlad Yasevich 提交于
      There is a small bug when we process a FWD-TSN.  We'll deliver
      anything upto the current next expected SSN.  However, if the
      next expected is already in the queue, it will take another
      chunk to trigger its delivery.  The fix is to simply check
      the current queued SSN is the next expected one.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      cd3ae8e6