[FREELDR]
[reactos.git] / reactos / boot / freeldr / freeldr / fs / pxe.c
index 15d025b..2a75000 100644 (file)
@@ -22,6 +22,7 @@
 #define NDEBUG
 #include <debug.h>
 
+#define TAG_PXE_FILE 'FexP'
 #define NO_FILE ((ULONG)-1)
 
 DBG_DEFAULT_CHANNEL(FILESYSTEM);
@@ -129,7 +130,7 @@ static LONG PxeClose(ULONG FileId)
     _OpenFile = NO_FILE;
     if (_CachedFile)
     {
-        MmHeapFree(_CachedFile);
+        FrLdrTempFree(_CachedFile, TAG_PXE_FILE);
         _CachedFile = NULL;
     }
     return ESUCCESS;
@@ -161,11 +162,15 @@ static LONG PxeOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
     sizeData.ServerIPAddress = _ServerIP;
     strncpy((CHAR*)sizeData.FileName, Path, sizeof(sizeData.FileName));
     if (!CallPxe(PXENV_TFTP_GET_FSIZE, &sizeData))
+    {
+        ERR("Failed to get '%s' size\n", Path);
         return EIO;
+    }
+
     _FileSize = sizeData.FileSize;
     if (_FileSize < 1024 * 1024)
     {
-        _CachedFile = MmHeapAlloc(_FileSize);
+        _CachedFile = FrLdrTempAlloc(_FileSize, TAG_PXE_FILE);
         // Don't check for allocation failure, we support _CachedFile = NULL
     }
     _CachedLength = 0;
@@ -179,7 +184,7 @@ static LONG PxeOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
     {
         if (_CachedFile)
         {
-            MmHeapFree(_CachedFile);
+            FrLdrTempFree(_CachedFile, TAG_PXE_FILE);
             _CachedFile = NULL;
         }
         return ENOENT;