|  | @@ -82,21 +82,22 @@ PXENV_EXIT_t pxenv_get_cached_info ( struct s_PXENV_GET_CACHED_INFO
 | 
		
	
		
			
			| 82 | 82 |  
 | 
		
	
		
			
			| 83 | 83 |  	DBG ( "PXENV_GET_CACHED_INFO %d", get_cached_info->PacketType );
 | 
		
	
		
			
			| 84 | 84 |  
 | 
		
	
		
			
			|  | 85 | +	DBG ( " to %04x:%04x+%x", get_cached_info->Buffer.segment,
 | 
		
	
		
			
			|  | 86 | +	      get_cached_info->Buffer.offset, get_cached_info->BufferSize );
 | 
		
	
		
			
			|  | 87 | +
 | 
		
	
		
			
			| 85 | 88 |  	/* This is really, really awkward to support with our multiple
 | 
		
	
		
			
			| 86 | 89 |  	 * sources of options.
 | 
		
	
		
			
			| 87 | 90 |  	 */
 | 
		
	
		
			
			| 88 |  | -	if ( get_cached_info->BufferLimit == 0 ) {
 | 
		
	
		
			
			|  | 91 | +	len = get_cached_info->BufferSize;
 | 
		
	
		
			
			|  | 92 | +	if ( len == 0 ) {
 | 
		
	
		
			
			|  | 93 | +		len = sizeof ( dhcp_basemem );
 | 
		
	
		
			
			| 89 | 94 |  		get_cached_info->Buffer.segment = rm_ds;
 | 
		
	
		
			
			| 90 | 95 |  		get_cached_info->Buffer.offset =
 | 
		
	
		
			
			| 91 | 96 |  			( unsigned int ) ( & __from_data16 ( dhcp_basemem ) );
 | 
		
	
		
			
			| 92 |  | -		get_cached_info->BufferLimit = sizeof ( dhcp_basemem );
 | 
		
	
		
			
			|  | 97 | +		get_cached_info->BufferLimit = len;
 | 
		
	
		
			
			| 93 | 98 |  	}
 | 
		
	
		
			
			| 94 | 99 |  
 | 
		
	
		
			
			| 95 |  | -	DBG ( " to %04x:%04x+%x", get_cached_info->Buffer.segment,
 | 
		
	
		
			
			| 96 |  | -	      get_cached_info->Buffer.offset, get_cached_info->BufferLimit );
 | 
		
	
		
			
			| 97 |  | -
 | 
		
	
		
			
			| 98 | 100 |  	/* Allocate space for temporary copy */
 | 
		
	
		
			
			| 99 |  | -	len = get_cached_info->BufferLimit;
 | 
		
	
		
			
			| 100 | 101 |  	data = malloc ( len );
 | 
		
	
		
			
			| 101 | 102 |  	if ( ! data ) {
 | 
		
	
		
			
			| 102 | 103 |  		DBG ( " out of memory" );
 |