Page MenuHomePhabricator

cbezault (Curtis J Bezault)
User

Projects

User does not belong to any projects.

User Details

User Since
May 6 2020, 2:49 PM (134 w, 1 d)

Recent Activity

Apr 1 2022

cbezault updated subscribers of D97781: Hook Rtl* allocation functions directly on Windows.

@poljak181 I'm no longer on the ASan team at Microsoft so I can't really comment on where things stand. The last thing I saw was that we were still running into issues where Rtl* functions were getting called during process teardown. The RAII lock destructors wouldn't get called before teardown so locks would be held by threads that no longer existed and then we would deadlock. Windows gets around this with the Heap locks by walking through all existing heaps on teardown and essentially unlocking all of the locks before proceeding to call Rtl* functions. I had proposed hooking the function that does that in order to effectively do the same thing with the ASan internal locks but I don't know if it was ever implemented. @stwish_msft

Apr 1 2022, 9:57 AM · Restricted Project, Restricted Project

Feb 14 2022

cbezault added a comment to D119711: Add asan support for MSVC debug runtimes.

Imo I agree that this shouldn’t be merged until the debug variants of the asan runtime are getting built publicly.

Feb 14 2022, 12:10 PM · Restricted Project

Jan 26 2022

cbezault updated subscribers of D97781: Hook Rtl* allocation functions directly on Windows.

Hi Javier,

Jan 26 2022, 3:17 PM · Restricted Project, Restricted Project

Jan 25 2022

cbezault updated subscribers of D118159: [CMake][MSVC] Add include path to crt headers when enabling sanitizers..
Jan 25 2022, 1:26 PM · Restricted Project
cbezault abandoned D97781: Hook Rtl* allocation functions directly on Windows.
Jan 25 2022, 1:25 PM · Restricted Project, Restricted Project

Dec 2 2021

cbezault added a comment to D109941: [compiler-rt] [windows] Add more assembly patterns for interception.

I've followed up with people more knowledgeable than myself. The unknown leading bytes in the padding region are XFG hashes and can be safely overwritten as long as XFG is not enabled for the process. (XFG is an eXtension of CFG, control flow guard)
I can't imagine many people will have both ASan and XFG enabled at the same time so I think the interception logic should just always assume there is padding before Windows OS functions.

Dec 2 2021, 2:53 PM · Restricted Project
cbezault added a comment to D109941: [compiler-rt] [windows] Add more assembly patterns for interception.

Note that we should get in contact with the Windows maintainers about this. Windows OS dlls are built with /HOTPATCH and should all be hotpatchable. It's unclear what the leading junk in the hotpatch padding is.

Dec 2 2021, 2:02 PM · Restricted Project

Sep 17 2021

cbezault added a comment to D97781: Hook Rtl* allocation functions directly on Windows.

Hi Reid,

Sep 17 2021, 5:48 PM · Restricted Project, Restricted Project

Sep 14 2021

cbezault updated subscribers of D97781: Hook Rtl* allocation functions directly on Windows.

Hi Daniel,

Sep 14 2021, 5:24 AM · Restricted Project, Restricted Project

Jul 19 2021

cbezault updated subscribers of D97781: Hook Rtl* allocation functions directly on Windows.

Looks like I found the problem. It's pretty dumb :( . The issue is that at
the top of RtlDestroyHeap I destroy the instance of the AsanHeap associated
with the HeapHandle but anywhere that calls GetAsanHeap will just recreate
it, leading to the race condition. This is a pretty easy fix but I'm kind
of backlogged and won't be able to get something in for the next couple of
weeks.

Jul 19 2021, 8:43 PM · Restricted Project, Restricted Project
cbezault added a comment to D97781: Hook Rtl* allocation functions directly on Windows.

Hi Javier,

Jul 19 2021, 4:27 PM · Restricted Project, Restricted Project
cbezault added a comment to D97781: Hook Rtl* allocation functions directly on Windows.

Hi Javier,

Jul 19 2021, 2:33 PM · Restricted Project, Restricted Project

Mar 12 2021

cbezault planned changes to D97781: Hook Rtl* allocation functions directly on Windows.
Mar 12 2021, 10:59 AM · Restricted Project, Restricted Project

Mar 2 2021

cbezault updated the diff for D97781: Hook Rtl* allocation functions directly on Windows.

Fixup headers.

Mar 2 2021, 6:19 PM · Restricted Project, Restricted Project
cbezault updated the diff for D97781: Hook Rtl* allocation functions directly on Windows.

Fixups

Mar 2 2021, 6:05 PM · Restricted Project, Restricted Project
cbezault planned changes to D97781: Hook Rtl* allocation functions directly on Windows.
Mar 2 2021, 10:11 AM · Restricted Project, Restricted Project
cbezault retitled D97781: Hook Rtl* allocation functions directly on Windows from Move Heap* hooks to just hooking the Rtl* functions directly on Windows to Hook Rtl* allocation functions directly on Windows.
Mar 2 2021, 10:04 AM · Restricted Project, Restricted Project
cbezault updated the summary of D97781: Hook Rtl* allocation functions directly on Windows.
Mar 2 2021, 10:03 AM · Restricted Project, Restricted Project
cbezault retitled D97781: Hook Rtl* allocation functions directly on Windows from Summary: This is the first of several planned PRs to upstream the changes to the ASan runtime which have been completed internally by Microsoft. We are shipping this and several other changes built on top of LLVM 9 in the Visual Studio toolset. to Move Heap* hooks to just hooking the Rtl* functions directly on Windows.
Mar 2 2021, 10:01 AM · Restricted Project, Restricted Project
cbezault requested review of D97781: Hook Rtl* allocation functions directly on Windows.
Mar 2 2021, 9:56 AM · Restricted Project, Restricted Project

Jun 15 2020

cbezault added a comment to D81782: [lit] Allow for tests to have non-parsed requirements.

It can be found here. It was based loosely off of the old libcxx test format. I'm probably going to submit a pretty significant re-working of it and/or see if I can adapt the new format to our needs whenever I have a free minute.

Jun 15 2020, 12:04 PM · Restricted Project
cbezault added a comment to D81782: [lit] Allow for tests to have non-parsed requirements.

Yes, we have a custom test format which considers the configured target architecture and the set of flags the test will be compiled with.

Jun 15 2020, 10:23 AM · Restricted Project