mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-11-03 21:17:23 +01:00 
			
		
		
		
	MdeModulePkg: RegularExpressionDxe: support free(NULL)
The ISO C standard says about free(), If ptr is a null pointer, no action occurs. This is not true of the FreePool() interface of the MemoryAllocationLib class: Buffer must have been allocated on a previous call to the pool allocation services of the Memory Allocation Library. [...] If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, then ASSERT(). Therefore we must not forward the argument of free() to FreePool() without checking. Cc: Cecil Sheng <cecil.sheng@hpe.com> Cc: Cinnamon Shia <cinnamon.shia@hpe.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Qiu Shumin <shumin.qiu@intel.com> Cc: Samer El-Haj-Mahmoud <elhaj@hpe.com> Cc: Yao Jiewen <Jiewen.Yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-By: Cinnamon Shia <cinnamon.shia@hpe.com>
This commit is contained in:
		
							parent
							
								
									328d8cfa62
								
							
						
					
					
						commit
						ffbb5ae3ba
					
				@ -30,7 +30,17 @@ typedef UINTN size_t;
 | 
			
		||||
 | 
			
		||||
#define malloc(n) AllocatePool(n)
 | 
			
		||||
#define calloc(n,s) AllocateZeroPool((n)*(s))
 | 
			
		||||
#define free(p) FreePool(p)
 | 
			
		||||
 | 
			
		||||
#define free(p)             \
 | 
			
		||||
  do {                      \
 | 
			
		||||
    VOID *EvalOnce;         \
 | 
			
		||||
                            \
 | 
			
		||||
    EvalOnce = (p);         \
 | 
			
		||||
    if (EvalOnce != NULL) { \
 | 
			
		||||
      FreePool (EvalOnce);  \
 | 
			
		||||
    }                       \
 | 
			
		||||
  } while (FALSE)
 | 
			
		||||
 | 
			
		||||
#define realloc(OldPtr,NewSize,OldSize) ReallocatePool(OldSize,NewSize,OldPtr)
 | 
			
		||||
#define xmemmove(Dest,Src,Length) CopyMem(Dest,Src,Length)
 | 
			
		||||
#define xmemcpy(Dest,Src,Length) CopyMem(Dest,Src,Length)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user