This is an archive of the discontinued LLVM Phabricator instance.

[libunwind] [SEH] Clear DISPATCHER_CONTEXT when initializing a cursor
ClosedPublic

Authored by mstorsjo on Apr 18 2023, 2:00 PM.

Details

Summary

We only initialize a few fields in DISPATCHER_CONTEXT - don't leave
the rest in an uninitialized state; make sure the whole struct is
in a deterministic state.

This makes nondeterministic failures deterministic, for some cases
relating to forced unwinding on aarch64/arm (which requires filling
in parsing of the xdata for finding the exception handler and LSDA).

Diff Detail

Event Timeline

mstorsjo created this revision.Apr 18 2023, 2:00 PM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptApr 18 2023, 2:00 PM
Herald added a reviewer: Restricted Project. · View Herald Transcript
mstorsjo requested review of this revision.Apr 18 2023, 2:00 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 18 2023, 2:00 PM
phosek accepted this revision.Apr 21 2023, 11:21 AM
phosek added a subscriber: phosek.

LGTM

This revision is now accepted and ready to land.Apr 21 2023, 11:21 AM
cdavis5x accepted this revision.Apr 21 2023, 1:11 PM
This revision was landed with ongoing or failed builds.Apr 22 2023, 12:54 PM
This revision was automatically updated to reflect the committed changes.