| 
					
				 | 
			
			
				@@ -2044,7 +2044,12 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   s = smartlist_join_strings(chunks, "", 0, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while (strlen(s) > MAX_EXTRAINFO_UPLOAD_SIZE - DIROBJ_MAX_SIG_LEN) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* So long as there are at least two chunks (one for the initial 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * extra-info line and one for the router-signature), we can keep removing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * things. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (smartlist_len(chunks) > 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      /* We remove the next-to-last element (remember, len-1 is the last 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         element), since we need to keep the router-signature element. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       int idx = smartlist_len(chunks) - 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       char *e = smartlist_get(chunks, idx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       smartlist_del_keeporder(chunks, idx); 
			 |