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.
p.s. 0.7.49 doesn't handle $args_* at all.
Yes. Actually it's enough:
do {
do {
if (s1 >= last) {