[nginx] svn commit: r4596 - trunk/src/os/unix

mdounin at mdounin.ru mdounin at mdounin.ru
Tue Apr 17 09:10:50 UTC 2012


Author: mdounin
Date: 2012-04-17 09:10:50 +0000 (Tue, 17 Apr 2012)
New Revision: 4596
URL: http://trac.nginx.org/nginx/changeset/4596/nginx

Log:
Fixed loop in ngx_writev_chain() and ngx_solaris_sendfilev_chain().

The "complete" flag wasn't cleared on loop iteration start, resulting in
broken behaviour if there were more than IOV_MAX buffers and first
iteration was fully completed (and hence the "complete" flag was set
to 1).


Modified:
   trunk/src/os/unix/ngx_solaris_sendfilev_chain.c
   trunk/src/os/unix/ngx_writev_chain.c

Modified: trunk/src/os/unix/ngx_solaris_sendfilev_chain.c
===================================================================
--- trunk/src/os/unix/ngx_solaris_sendfilev_chain.c	2012-04-16 13:05:20 UTC (rev 4595)
+++ trunk/src/os/unix/ngx_solaris_sendfilev_chain.c	2012-04-17 09:10:50 UTC (rev 4596)
@@ -74,7 +74,6 @@
 
 
     send = 0;
-    complete = 0;
 
     vec.elts = sfvs;
     vec.size = sizeof(sendfilevec_t);
@@ -87,6 +86,7 @@
         fprev = 0;
         sfv = NULL;
         eintr = 0;
+        complete = 0;
         sent = 0;
         prev_send = send;
 

Modified: trunk/src/os/unix/ngx_writev_chain.c
===================================================================
--- trunk/src/os/unix/ngx_writev_chain.c	2012-04-16 13:05:20 UTC (rev 4595)
+++ trunk/src/os/unix/ngx_writev_chain.c	2012-04-17 09:10:50 UTC (rev 4596)
@@ -54,7 +54,6 @@
     }
 
     send = 0;
-    complete = 0;
 
     vec.elts = iovs;
     vec.size = sizeof(struct iovec);
@@ -65,6 +64,7 @@
         prev = NULL;
         iov = NULL;
         eintr = 0;
+        complete = 0;
         prev_send = send;
 
         vec.nelts = 0;



More information about the nginx-devel mailing list