mirror of
				https://github.com/openresty/openresty.git
				synced 2024-10-13 00:29:41 +00:00 
			
		
		
		
	bugfix: applied a patch to the nginx core to fix the memory invalid reads when exceeding the pre-configured limits in an ngx_hash_t hash table. also upgraded ngx_lua to 0.9.13rc1.
This commit is contained in:
		
							
								
								
									
										20
									
								
								patches/nginx-1.7.5-hash_overflow.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								patches/nginx-1.7.5-hash_overflow.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					# HG changeset patch
 | 
				
			||||||
 | 
					# User Yichun Zhang <agentzh@gmail.com>
 | 
				
			||||||
 | 
					# Date 1412276417 25200
 | 
				
			||||||
 | 
					#      Thu Oct 02 12:00:17 2014 -0700
 | 
				
			||||||
 | 
					# Node ID 4032b992f23b054c1a2cfb0be879330d2c6708e5
 | 
				
			||||||
 | 
					# Parent  1ff0f68d9376e3d184d65814a6372856bf65cfcd
 | 
				
			||||||
 | 
					Hash: buffer overflow might happen when exceeding the pre-configured limits.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff -r 1ff0f68d9376 -r 4032b992f23b src/core/ngx_hash.c
 | 
				
			||||||
 | 
					--- a/src/core/ngx_hash.c	Tue Sep 30 15:50:28 2014 -0700
 | 
				
			||||||
 | 
					+++ b/src/core/ngx_hash.c	Thu Oct 02 12:00:17 2014 -0700
 | 
				
			||||||
 | 
					@@ -312,6 +312,8 @@ ngx_hash_init(ngx_hash_init_t *hinit, ng
 | 
				
			||||||
 | 
					         continue;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+    size--;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					     ngx_log_error(NGX_LOG_WARN, hinit->pool->log, 0,
 | 
				
			||||||
 | 
					                   "could not build optimal %s, you should increase "
 | 
				
			||||||
 | 
					                   "either %s_max_size: %i or %s_bucket_size: %i; "
 | 
				
			||||||
@ -270,6 +270,10 @@ echo "$info_txt applying the resolver_del_event_invalid_read patch for nginx"
 | 
				
			|||||||
patch -p1 < $root/patches/nginx-$main_ver-resolver_del_event_invalid_read.patch || exit 1
 | 
					patch -p1 < $root/patches/nginx-$main_ver-resolver_del_event_invalid_read.patch || exit 1
 | 
				
			||||||
echo
 | 
					echo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "$info_txt applying the hash_overflow patch for nginx"
 | 
				
			||||||
 | 
					patch -p1 < $root/patches/nginx-$main_ver-hash_overflow.patch || exit 1
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rm -f *.patch || exit 1
 | 
					rm -f *.patch || exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cd .. || exit 1
 | 
					cd .. || exit 1
 | 
				
			||||||
@ -339,7 +343,7 @@ mv openresty-drizzle-nginx-module-* drizzle-nginx-module-$ver || exit 1
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#################################
 | 
					#################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ver=0.9.12
 | 
					ver=0.9.13rc1
 | 
				
			||||||
$root/util/get-tarball "https://github.com/openresty/lua-nginx-module/tarball/v$ver" -O lua-nginx-module-$ver.tar.gz || exit 1
 | 
					$root/util/get-tarball "https://github.com/openresty/lua-nginx-module/tarball/v$ver" -O lua-nginx-module-$ver.tar.gz || exit 1
 | 
				
			||||||
tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
 | 
					tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
 | 
				
			||||||
mv openresty-lua-nginx-module-* ngx_lua-$ver || exit 1
 | 
					mv openresty-lua-nginx-module-* ngx_lua-$ver || exit 1
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user