summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-01-31 12:27:40 +0000
committerkib <kib@FreeBSD.org>2015-01-31 12:27:40 +0000
commit871996ee6ee293bdfe7f29e1cf6d5d69515817de (patch)
tree80faa7ffd2d70487fb7a8024a56066ebeb74c55b /contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp
parent8773784e5af389fa6995e7c56ec446f28ee3ef95 (diff)
downloadFreeBSD-src-871996ee6ee293bdfe7f29e1cf6d5d69515817de.zip
FreeBSD-src-871996ee6ee293bdfe7f29e1cf6d5d69515817de.tar.gz
The dependency chain for priority-inheritance mutexes could be
subverted by userspace into cycle. Both umtx_propagate_priority() and umtx_repropagate_priority() would then loop infinitely, owning the spinlock. Check for the cycle using standard Floyd' algorithm before doing the pass in the affected functions. Add simple check for condition of tricking the thread into a wait for itself, which could be easily simulated by usermode without race. Found by: Eric van Gyzen <eric@vangyzen.net> In collaboration with: Eric van Gyzen <eric@vangyzen.net> Tested by: pho MFC after: 1 week
Diffstat (limited to 'contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud