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
Fixup Issue #19350 - Assert error under: use re Debug=>"ALL"
In 7c932d0 karl changed the regex
parser to not do two passes always, and instead do one if it could.
However in some edge cases it still must do a second past and some of
the info needed for the Debug => "All" would not be available during the
first pass.
This was compounded by S_add_data() validly returning a 0 index for data
that was stored in the data array, which meant that there was no way to
tell the difference between "we dont have the data to call S_add_data()
at all" and "we called S_add_data() and it returned 0", this in turn
would cause the dumping logic to try to access data that was not there,
and misinterpret it as a valid SV, with ensure assert fails or worse
segfaults.
This patch changes S_add_data() so it always returns a non-zero return,
so that the regex debug logic can tell that it shouldnt do a lookup into
the data array. This means create a new "what" type of "%", which is
used SOLELY to populate the ->data[0] and ->what[0] with a dummy entry.
With this done we can add guard statements to places that lookup things
in the data array, if the index is 0 it can not be valid.
0 commit comments