aboutsummaryrefslogtreecommitdiffstats
path: root/www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c
diff options
context:
space:
mode:
authorosa <osa@FreeBSD.org>2011-08-11 00:22:58 +0800
committerosa <osa@FreeBSD.org>2011-08-11 00:22:58 +0800
commit97c051f5965e5eabefa40f8dd41114b265f9de75 (patch)
treee738aad2992fb73940eaf7d68900317a0da8a82e /www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c
parentf2586f0dddcfbeeb3197e83fcec3fcef13ab75a1 (diff)
downloadfreebsd-ports-gnome-97c051f5965e5eabefa40f8dd41114b265f9de75.tar.gz
freebsd-ports-gnome-97c051f5965e5eabefa40f8dd41114b265f9de75.tar.zst
freebsd-ports-gnome-97c051f5965e5eabefa40f8dd41114b265f9de75.zip
Update from 3.0.7 to 3.0.8:
1) www/rubygem-passenger; 2) passenger support for www/nginx and www/nginx-devel; Also add patch for fix NULL pointer crash that occurs when HTTP 1.0 Host header isn't given, obtained from passenger's upstream. Approved by: maintainer [1]
Diffstat (limited to 'www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c')
-rw-r--r--www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c b/www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c
new file mode 100644
index 000000000000..b71bd650bbb9
--- /dev/null
+++ b/www/nginx-devel/files/extra-patch-passenger::ext::nginx::ContentHandler.c
@@ -0,0 +1,54 @@
+--- ../passenger-3.0.8/ext/nginx/ContentHandler.c.orig 2011-08-10 10:35:24.000000000 +0400
++++ ../passenger-3.0.8/ext/nginx/ContentHandler.c 2011-08-10 10:36:35.000000000 +0400
+@@ -336,6 +336,7 @@
+ ngx_table_elt_t *header;
+ ngx_http_script_code_pt code;
+ ngx_http_script_engine_t e, le;
++ ngx_http_core_srv_conf_t *cscf;
+ passenger_loc_conf_t *slcf;
+ passenger_main_conf_t *main_conf;
+ passenger_context_t *context;
+@@ -344,6 +345,7 @@
+ ngx_http_ssl_srv_conf_t *ssl_conf;
+ #endif
+
++ cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
+ slcf = ngx_http_get_module_loc_conf(r, ngx_http_passenger_module);
+ main_conf = &passenger_main_conf;
+ context = ngx_http_get_module_ctx(r, ngx_http_passenger_module);
+@@ -415,11 +417,15 @@
+ }
+
+ /* SERVER_NAME; must be equal to HTTP_HOST without the port part */
+- tmp = memchr(r->headers_in.host->value.data, ':', r->headers_in.host->value.len);
+- if (tmp == NULL) {
+- server_name_len = r->headers_in.host->value.len;
++ if (r->headers_in.host != NULL) {
++ tmp = memchr(r->headers_in.host->value.data, ':', r->headers_in.host->value.len);
++ if (tmp == NULL) {
++ server_name_len = r->headers_in.host->value.len;
++ } else {
++ server_name_len = (int) ((const u_char *) tmp - r->headers_in.host->value.data);
++ }
+ } else {
+- server_name_len = (int) ((const u_char *) tmp - r->headers_in.host->value.data);
++ server_name_len = cscf->server_name.len;
+ }
+ len += sizeof("SERVER_NAME") + server_name_len + 1;
+
+@@ -650,8 +656,13 @@
+
+ /* SERVER_NAME */
+ b->last = ngx_copy(b->last, "SERVER_NAME", sizeof("SERVER_NAME"));
+- b->last = ngx_copy(b->last, r->headers_in.host->value.data,
+- server_name_len);
++ if (r->headers_in.host != NULL) {
++ b->last = ngx_copy(b->last, r->headers_in.host->value.data,
++ server_name_len);
++ } else {
++ b->last = ngx_copy(b->last, cscf->server_name.data,
++ server_name_len);
++ }
+ b->last = ngx_copy(b->last, "", 1);
+
+ /* Various other HTTP headers. */