nginx-0.7.49

Igor Sysoev is at rambler-co.ru
Mon Apr 6 15:44:49 MSD 2009


On Mon, Apr 06, 2009 at 03:42:57PM +0400, Maxim Dounin wrote:

> Hello!
> 
> On Mon, Apr 06, 2009 at 03:30:54PM +0400, Maxim Dounin wrote:
> 
> > Hello!
> > 
> > On Mon, Apr 06, 2009 at 02:45:18PM +0400, Igor Sysoev wrote:
> > 
> > > Changes with nginx 0.7.49                                        06 Apr 2009
> > > 
> > >     *) Change: a segmentation fault might occur in worker process, if the 
> > >        $arg_... variables were used; the bug had appeared in 0.7.48.
> > 
> > It should be
> > 
> > --- a/src/core/ngx_string.c
> > +++ b/src/core/ngx_string.c
> > @@ -703,14 +703,14 @@ ngx_strlcasestrn(u_char *s1, u_char *las
> >  {
> >      ngx_uint_t  c1, c2;
> > 
> > +    c2 = (ngx_uint_t) *s2++;
> > +    c2  = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;
> > +    last -= n;
> > +
> >      if (s1 <= last) {
> >          return NULL;
> >      }
> > 
> > -    c2 = (ngx_uint_t) *s2++;
> > -    c2  = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;
> > -    last -= n;
> > -
> >      do {
> >          do {
> >              if (s1 == last) {
> 
> Disregard this.  It should be 
> 
> diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
> --- a/src/core/ngx_string.c
> +++ b/src/core/ngx_string.c
> @@ -703,14 +703,14 @@ ngx_strlcasestrn(u_char *s1, u_char *las
>  {
>      ngx_uint_t  c1, c2;
> 
> -    if (s1 <= last) {
> -        return NULL;
> -    }
> -
>      c2 = (ngx_uint_t) *s2++;
>      c2  = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;
>      last -= n;
> 
> +    if (s1 >= last) {
> +        return NULL;
> +    }
> +
>      do {
>          do {
>              if (s1 == last) {
> 
> 
> Shame on me again.
> 
> Maxim Dounin
> 
> p.s. 0.7.49 doesn't handle $args_* at all.

Yes. Actually it's enough:

      do {
          do {
              if (s1 >= last) {


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list