Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Sep 2002 21:30:19 -0700 (PDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern kern_mac.c sys_pipe.c
Message-ID:  <200210010430.g914UJf0033214@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
rwatson     2002/09/30 21:30:19 PDT

  Modified files:
    sys/kern             kern_mac.c sys_pipe.c 
  Log:
  Improve locking of pipe mutexes in the context of MAC:
  
  (1) Where previously the pipe mutex was selectively grabbed during
      pipe_ioctl(), now always grab it and then release if if not
      needed.  This protects the call to mac_check_pipe_ioctl() to
      make sure the label remains consistent.  (Note: it looks
      like sigio locking may be incorrect for fgetown() since we
      call it not-by-reference and sigio locking assumes call by
      reference).
  
  (2) In pipe_stat(), lock the pipe if MAC is compiled in so that
      the call to mac_check_pipe_stat() gets a locked pipe to
      protect label consistency.  We still release the lock before
      returning actual stat() data, risking inconsistency, but
      apparently our pipe locking model accepts that risk.
  
  (3) In various pipe MAC authorization checks, assert that the pipe
      lock is held.
  
  (4) Grab the lock when performing a pipe relabel operation, and
      assert it a little deeper in the stack.
  
  Obtained from:  TrustedBSD Project
  Sponsored by:   DARPA, Network Associates Laboratories
  
  Revision  Changes    Path
  1.25      +34 -0     src/sys/kern/kern_mac.c
  1.120     +12 -4     src/sys/kern/sys_pipe.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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