[roll] Roll fuchsia [kernel][chainlock] Don't touch lock contents after release.

Make absolutely sure that we never touch the internals of a ChainLock
after its internal state has been set to Unlocked.  This aligns the
ChainLock implementation with special requirements defined for
std::mutex; basically that as soon as a lock is free and can be
obtained by someone else, the code releasing the lock has to consider
the object to be dead and cannot touch any internal lock state.

Prior to this, we were reading the ChainLock's contention mask
immediately after setting its state to Unlocked, which sets up UAF
potential.  See comments in the CL and http://fxbug.dev/339437199 for
more details.

Original-Fixed: 339437199
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1045611
Original-Revision: b8d4ecbbacd37d63617b365a3768456029ad1944
GitOrigin-RevId: 727135b22711c845527658efbb4bd0db7907b10e
Change-Id: Id57b354ae2b749070205acacf659d1e621d38325
1 file changed
tree: 105d3828b8419802ae57194d20c12489b1be6f75
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.