Skip to content
This repository has been archived by the owner on Nov 1, 2020. It is now read-only.

Fix RhpCallFilterFunclet stack alignment on ARM #7744

Merged

Commits on Aug 28, 2019

  1. Fix RhpCallFilterFunclet stack alignment on ARM

    The number of registers pushed to the stack in the RhpCallFilterFunclet prolog on ARM made the stack misaligned (it needs to be aligned on 8 bytes), so the filter funclet and its transitive callees all had misaligned stack. While in many cases this doesn't cause issues, there are cases where it can cause runtime failures or crashes. For example, when the exception filter call chain invokes a varargs function with certain combination of parameter sizes when some of the arguments are supposed to be 8 byte aligned.
    
    This change fixes the problem by pushing one more register as a padding in the RhpCallFilterFunclet (and popping it in the epilog).
    janvorli committed Aug 28, 2019
    Configuration menu
    Copy the full SHA
    926e2f2 View commit details
    Browse the repository at this point in the history