You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[StackProtector] Fix phi handling in HasAddressTaken()
Despite the name, the HasAddressTaken() heuristic identifies not
only allocas that have their address taken, but also those that
have accesses that cannot be proven to be in-bounds.
However, the current handling for phi nodes is incorrect. Phi
nodes are only visited once, and will perform the analysis using
whichever (remaining) allocation size is passed the first time
the phi node is visited. If it is later visited with a smaller
remainin size, which may lead to out of bounds accesses, it will
not be detected.
Fix this by keeping track of the smallest seen remaining allocation
size and redo the analysis if it is decreased. To avoid degenerate
cases (including via loops), limit the number of allowed decreases
to a small number.
0 commit comments