commit | fb3c9b8180c0819ade14b2414231b8e78f92d6db | [log] [tgz] |
---|---|---|
author | John Grossman <johngro@fuchsia.infra.roller.google.com> | Fri May 10 01:08:31 2024 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Thu May 09 18:09:53 2024 -0700 |
tree | 105d3828b8419802ae57194d20c12489b1be6f75 | |
parent | 70cf3a395d34c3e779ffbab796d899e41ace6440 [diff] |
[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
This repository contains Fuchsia's Global Integration manifest files.
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.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.