<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>[nginx] svn commit: r4617 - trunk/src/http/modules</title>
<description>Author: mdounin
Date: 2012-05-11 13:14:58 +0000 (Fri, 11 May 2012)
New Revision: 4617
URL: http://trac.nginx.org/nginx/changeset/4617/nginx
Log:
Fastcgi: fixed padding handling on fixed-size records.
Padding was incorrectly ignored on end request, empty stdout and stderr
fastcgi records. This resulted in protocol desynchronization if fastcgi
application used these records with padding for some reason.
Reported by Ilia Vinokurov.
Modified:
trunk/src/http/modules/ngx_http_fastcgi_module.c
Modified: trunk/src/http/modules/ngx_http_fastcgi_module.c
===================================================================
--- trunk/src/http/modules/ngx_http_fastcgi_module.c 2012-05-11 13:09:24 UTC (rev 4616)
+++ trunk/src/http/modules/ngx_http_fastcgi_module.c 2012-05-11 13:14:58 UTC (rev 4617)
@@ -1356,7 +1356,11 @@
}
} else {
- f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ if (f-&amp;gt;padding) {
+ f-&amp;gt;state = ngx_http_fastcgi_st_padding;
+ } else {
+ f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ }
}
continue;
@@ -1689,8 +1693,13 @@
}
if (f-&amp;gt;type == NGX_HTTP_FASTCGI_STDOUT &amp;amp;&amp;amp; f-&amp;gt;length == 0) {
- f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ if (f-&amp;gt;padding) {
+ f-&amp;gt;state = ngx_http_fastcgi_st_padding;
+ } else {
+ f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ }
+
if (!flcf-&amp;gt;keep_conn) {
p-&amp;gt;upstream_done = 1;
}
@@ -1702,7 +1711,13 @@
}
if (f-&amp;gt;type == NGX_HTTP_FASTCGI_END_REQUEST) {
- f-&amp;gt;state = ngx_http_fastcgi_st_version;
+
+ if (f-&amp;gt;padding) {
+ f-&amp;gt;state = ngx_http_fastcgi_st_padding;
+ } else {
+ f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ }
+
p-&amp;gt;upstream_done = 1;
if (flcf-&amp;gt;keep_conn) {
@@ -1775,7 +1790,11 @@
}
} else {
- f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ if (f-&amp;gt;padding) {
+ f-&amp;gt;state = ngx_http_fastcgi_st_padding;
+ } else {
+ f-&amp;gt;state = ngx_http_fastcgi_st_version;
+ }
}
continue;
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel</description><link>http://forum.nginx.org/read.php?29,226303,226303#msg-226303</link><lastBuildDate>Wed, 19 Jun 2013 21:45:20 -0400</lastBuildDate>
<generator>Phorum 5.2.16</generator>
<item>
<guid>http://forum.nginx.org/read.php?29,226303,226303#msg-226303</guid>
<title>[nginx] svn commit: r4617 - trunk/src/http/modules</title><link>http://forum.nginx.org/read.php?29,226303,226303#msg-226303</link><description><![CDATA[Author: mdounin<br />Date: 2012-05-11 13:14:58 +0000 (Fri, 11 May 2012)<br />New Revision: 4617<br />URL: http://trac.nginx.org/nginx/changeset/4617/nginx<br /><br />Log:<br />Fastcgi: fixed padding handling on fixed-size records.<br /><br />Padding was incorrectly ignored on end request, empty stdout and stderr<br />fastcgi records. This resulted in protocol desynchronization if fastcgi<br />application used these records with padding for some reason.<br /><br />Reported by Ilia Vinokurov.<br /><br /><br />Modified:<br />trunk/src/http/modules/ngx_http_fastcgi_module.c<br /><br />Modified: trunk/src/http/modules/ngx_http_fastcgi_module.c<br />===================================================================<br />--- trunk/src/http/modules/ngx_http_fastcgi_module.c 2012-05-11 13:09:24 UTC (rev 4616)<br />+++ trunk/src/http/modules/ngx_http_fastcgi_module.c 2012-05-11 13:14:58 UTC (rev 4617)<br />@@ -1356,7 +1356,11 @@<br />}<br /><br />} else {<br />- f-&gt;state = ngx_http_fastcgi_st_version;<br />+ if (f-&gt;padding) {<br />+ f-&gt;state = ngx_http_fastcgi_st_padding;<br />+ } else {<br />+ f-&gt;state = ngx_http_fastcgi_st_version;<br />+ }<br />}<br /><br />continue;<br />@@ -1689,8 +1693,13 @@<br />}<br /><br />if (f-&gt;type == NGX_HTTP_FASTCGI_STDOUT &amp;&amp; f-&gt;length == 0) {<br />- f-&gt;state = ngx_http_fastcgi_st_version;<br /><br />+ if (f-&gt;padding) {<br />+ f-&gt;state = ngx_http_fastcgi_st_padding;<br />+ } else {<br />+ f-&gt;state = ngx_http_fastcgi_st_version;<br />+ }<br />+<br />if (!flcf-&gt;keep_conn) {<br />p-&gt;upstream_done = 1;<br />}<br />@@ -1702,7 +1711,13 @@<br />}<br /><br />if (f-&gt;type == NGX_HTTP_FASTCGI_END_REQUEST) {<br />- f-&gt;state = ngx_http_fastcgi_st_version;<br />+<br />+ if (f-&gt;padding) {<br />+ f-&gt;state = ngx_http_fastcgi_st_padding;<br />+ } else {<br />+ f-&gt;state = ngx_http_fastcgi_st_version;<br />+ }<br />+<br />p-&gt;upstream_done = 1;<br /><br />if (flcf-&gt;keep_conn) {<br />@@ -1775,7 +1790,11 @@<br />}<br /><br />} else {<br />- f-&gt;state = ngx_http_fastcgi_st_version;<br />+ if (f-&gt;padding) {<br />+ f-&gt;state = ngx_http_fastcgi_st_padding;<br />+ } else {<br />+ f-&gt;state = ngx_http_fastcgi_st_version;<br />+ }<br />}<br /><br />continue;<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Anonymous User</dc:creator>
<category>Nginx Development</category><pubDate>Fri, 11 May 2012 09:16:00 -0400</pubDate></item>
</channel>
</rss>