Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jul 2003 16:49:10 -0700 (PDT)
From:      Robert Drehmel <robert@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/sys socketvar.h src/sys/kern uipc_socket.c
Message-ID:  <200307172349.h6HNnBRK053938@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
robert      2003/07/17 16:49:10 PDT

  FreeBSD src repository

  Modified files:
    sys/sys              socketvar.h 
    sys/kern             uipc_socket.c 
  Log:
  To avoid a kernel panic provoked by a NULL pointer dereference,
  do not clear the `sb_sel' member of the sockbuf structure
  while invalidating the receive sockbuf in sorflush(), called
  from soshutdown().
  
  The panic was reproduceable from user land by attaching a knote
  with EVFILT_READ filters to a socket, disabling further reads
  from it using shutdown(2), and then closing it.  knote_remove()
  was called to remove all knotes from the socket file descriptor
  by detaching each using its associated filterops' detach call-
  back function, sordetach() in this case, which tried to remove
  itself from the invalidated sockbuf's klist (sb_sel.si_note).
  
  PR:     kern/54331
  
  Revision  Changes    Path
  1.153     +7 -1      src/sys/kern/uipc_socket.c
  1.104     +1 -0      src/sys/sys/socketvar.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307172349.h6HNnBRK053938>