nginx-0.7.49
Maxim Dounin
mdounin at mdounin.ru
Mon Apr 6 15:42:57 MSD 2009
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.
More information about the nginx
mailing list