| 
					
				 | 
			
			
				@@ -199,9 +199,15 @@ HandshakeExtensionMessage::create(const unsigned char* data, size_t length) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const Integer* metadataSize = downcast<Integer>(dict->get("metadata_size")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Only accept metadata smaller than 1MiB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(metadataSize && metadataSize->i() <= 1024*1024) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    msg->metadataSize_ = metadataSize->i(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(metadataSize) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    auto size = metadataSize->i(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Only accept metadata smaller than 1MiB.  Be aware that broken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // clinet can send negative size! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(size > 0 && size <= 1024*1024) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      msg->metadataSize_ = size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return msg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |