| 
					
				 | 
			
			
				@@ -0,0 +1,40 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Subject: The cdf_read_property_info function allows remote attackers to cause a denial of service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ID: CVE-2014-0238 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Author: Christos Zoulas <christos@zoulas.com> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Date: Wed May 21 13:04:38 2014 +0000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Origin: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    commit f97486ef5dc3e8735440edc4fc8808c63e1a3ef0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Debian-Author: Holger Levsen <holger@debian.org> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Comment: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    made apply cleanly based on [origin] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Comment-2: Upstream's commit message refers to a different CVE ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Reviewed-By: Christoph Biedl <debian.axhn@manchmal.in-ulm.de> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Last-Update: 2014-09-07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CVE-2014-0207: Prevent 0 element vectors and vectors longer than the number 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    of properties from accessing random memory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- a/src/cdf.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/src/cdf.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -813,6 +813,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 		    i, inp[i].pi_id, inp[i].pi_type, q - p, offs)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 		if (inp[i].pi_type & CDF_VECTOR) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 			nelements = CDF_GETUINT32(q, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++			if (nelements == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++				DPRINTF(("CDF_VECTOR with nelements == 0\n")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++				goto out; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 			o = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 			nelements = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -887,7 +891,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 			DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 			    nelements)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-			for (j = 0; j < nelements; j++, i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++			for (j = 0; j < nelements && i < sh.sh_properties; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++			    j++, i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++			{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 				uint32_t l = CDF_GETUINT32(q, o); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 				inp[i].pi_str.s_len = l; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 				inp[i].pi_str.s_buf = (const char *) 
			 |