summaryrefslogtreecommitdiffstats
path: root/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c')
-rw-r--r--IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c b/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c
index f1729825c7..439e15beab 100644
--- a/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c
+++ b/IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaDecompress.c
@@ -29,7 +29,43 @@
#include "Sdk/C/7zVersion.h"
#include "Sdk/C/LzmaDec.h"
-extern ISzAlloc g_Alloc;
+/**
+ Allocation routine used by LZMA decompression.
+
+ @param p Pointer to the ISzAlloc instance
+ @param size The size in bytes to be allocated
+
+ @return The allocated pointer address, or NULL on failure
+**/
+STATIC
+VOID *
+SzAlloc (
+ void *p,
+ size_t size
+ )
+{
+ return AllocatePool (size);
+}
+
+/**
+ Free routine used by LZMA decompression.
+
+ @param p Pointer to the ISzAlloc instance
+ @param address The address to be freed
+**/
+STATIC
+VOID
+SzFree (
+ void *p,
+ void *address
+ )
+{
+ if (address != NULL) {
+ FreePool (address);
+ }
+}
+
+STATIC ISzAlloc g_Alloc = { SzAlloc, SzFree };
#define LZMA_HEADER_SIZE (LZMA_PROPS_SIZE + 8)