@- Fixed a crash in ereg_replace() when backreference number was greater
@ than the number of subpatterns. (oliver@billix.franken.de)
while (*walk)
if ('\\' == *walk
&& '0' <= walk[1] && '9' >= walk[1]
+ && walk[1] - '0' <= re.re_nsub
&& subs[walk[1] - '0'].rm_so > -1
&& subs[walk[1] - '0'].rm_eo > -1) {
new_l += subs[walk[1] - '0'].rm_eo
while (*walk)
if ('\\' == *walk
&& '0' <= walk[1] && '9' >= walk[1]
+ && walk[1] - '0' <= re.re_nsub
&& subs[walk[1] - '0'].rm_so > -1
&& subs[walk[1] - '0'].rm_eo > -1
/* this next case shouldn't happen. it does. */
while (*walk)
if ('\\' == *walk
&& '0' <= walk[1] && '9' >= walk[1]
+ && walk[1] - '0' <= re.re_nsub
&& subs[walk[1] - '0'].rm_so > -1
&& subs[walk[1] - '0'].rm_eo > -1) {
new_l += subs[walk[1] - '0'].rm_eo
while (*walk)
if ('\\' == *walk
&& '0' <= walk[1] && '9' >= walk[1]
+ && walk[1] - '0' <= re.re_nsub
&& subs[walk[1] - '0'].rm_so > -1
&& subs[walk[1] - '0'].rm_eo > -1
/* this next case shouldn't happen. it does. */