33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git a/common/options.c b/common/options.c
 | |
| index ed8ac38..addc65a 100644
 | |
| --- a/common/options.c
 | |
| +++ b/common/options.c
 | |
| @@ -4397,6 +4397,8 @@ add_option(struct option_state *options,
 | |
|  	if (!option_cache_allocate(&oc, MDL)) {
 | |
|  		log_error("No memory for option cache adding %s (option %d).",
 | |
|  			  option->name, option_num);
 | |
| +		/* Get rid of reference created during hash lookup. */
 | |
| +		option_dereference(&option, MDL);
 | |
|  		return 0;
 | |
|  	}
 | |
|  
 | |
| @@ -4408,6 +4410,8 @@ add_option(struct option_state *options,
 | |
|  			     MDL)) {
 | |
|  		log_error("No memory for constant data adding %s (option %d).",
 | |
|  			  option->name, option_num);
 | |
| +		/* Get rid of reference created during hash lookup. */
 | |
| +		option_dereference(&option, MDL);
 | |
|  		option_cache_dereference(&oc, MDL);
 | |
|  		return 0;
 | |
|  	}
 | |
| @@ -4416,6 +4420,9 @@ add_option(struct option_state *options,
 | |
|  	save_option(&dhcp_universe, options, oc);
 | |
|  	option_cache_dereference(&oc, MDL);
 | |
|  
 | |
| +	/* Get rid of reference created during hash lookup. */
 | |
| +	option_dereference(&option, MDL);
 | |
| +
 | |
|  	return 1;
 | |
|  }
 | |
|  
 |