Do you have an example script that can be used to reproduce the supposed memory access violation?
Ilia On June 14, 2004 01:51 pm, Alexander Valyalkin wrote: > Here is patch for basename() function, which prevents possible > memory access violation: > > =========cut========= > --- string.c Thu May 13 20:44:32 2004 > +++ string_basename.c Mon Jun 14 20:43:33 2004 > @@ -1079,9 +1079,9 @@ > > > /* strip trailing slashes */ > - while (*c == '/' > + while (c >= s && *c == '/' > #ifdef PHP_WIN32 > - || (*c == '\\' && !IsDBCSLeadByte(*(c-1))) > + || (c > s && *c == '\\' && !IsDBCSLeadByte(*(c-1))) > #endif > ) > c--; > @@ -1092,10 +1092,10 @@ > } > > #ifdef PHP_WIN32 > - if ((c = strrchr(s, '/')) || ((c = strrchr(s, '\\')) && > !IsDBCSLeadByte(*(c-1)))) { > + if ((c = strrchr(s, '/')) || ((c = strrchr(s, '\\')) && c > s && > !IsDBCSLeadByte(*(c-1)))) { > if (*c == '/') { > char *c2 = strrchr(s, '\\'); > - if (c2 && !IsDBCSLeadByte(*(c2-1)) && c2 > c) { > + if (c2 && c2 > s && !IsDBCSLeadByte(*(c2-1)) && c2 > c) { > c = c2; > } > } > =========cut========== > > -- > Using Opera's revolutionary e-mail client: http://www.opera.com/m2/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php