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

Reply via email to