commit | dd23fadffd3a979017c07fda50828edf9c5583ae | [log] [tgz] |
---|---|---|
author | Bruce Dawson <brucedawson@chromium.org> | Thu Feb 15 15:48:51 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Feb 15 15:48:51 2018 |
tree | 7f6722bc2f11e623f6888d25173f540f38a4bdbf | |
parent | 167fdbd10f70ab135b133c0f7aafc1dc82167186 [diff] |
Disable CFG (/guard:cf) for component builds There appears to be a bug in Microsoft's linker when using /guard:cf with incremental linking. The table of functions occasionally gets corrupted or not update which leads to a CFG violation when the OS thinks that an invalid indirect branch is being taken. The stack shows: ntdll.dll!RtlFailFast2() ntdll.dll!RtlpHandleInvalidUserCallTarget() The error code returned is 0xC0000409 which is STATUS_STACK_BUFFER_OVERRUN which is quite non-obvious and confusing. A bug in the linker with incremental linking and CFG seems quite plausible, and that combination is quite worthless, so the fix is to not use CFG in component builds. Note that future occurrences of this bug, if any, will show an error code of 0xC0000409 where they used to show -1073741819. This is due to a separate change that alters how we print these error codes. Bug: 812421 Change-Id: I8042d4363ea93084ca56e0634124799183c4153c Reviewed-on: https://chromium-review.googlesource.com/920761 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org> Cr-Commit-Position: refs/heads/master@{#537027}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .