}\r
}\r
}\r
- goto Finish;\r
+ if (!EFI_ERROR (Status)) {\r
+ goto Finish;\r
+ }\r
}\r
\r
//\r
TempDevicePathNode = DuplicateDevicePath (DevicePathNode);\r
if (TempDevicePathNode == NULL) {\r
FileHandle->Close (FileHandle);\r
+ //\r
+ // Setting Status to an EFI_ERROR value will cause the rest of\r
+ // the file system support below to be skipped.\r
+ //\r
Status = EFI_OUT_OF_RESOURCES;\r
- goto Finish;\r
}\r
//\r
// Parse each MEDIA_FILEPATH_DP node. There may be more than one, since the\r
// our way down each device path node and close the previous node\r
//\r
DevicePathNode = TempDevicePathNode;\r
- while (!IsDevicePathEnd (DevicePathNode) && !EFI_ERROR (Status)) {\r
+ while (!EFI_ERROR (Status) && !IsDevicePathEnd (DevicePathNode)) {\r
if (DevicePathType (DevicePathNode) != MEDIA_DEVICE_PATH ||\r
DevicePathSubType (DevicePathNode) != MEDIA_FILEPATH_DP) {\r
Status = EFI_UNSUPPORTED;\r
if (FileHandle != NULL) {\r
FileHandle->Close (FileHandle);\r
}\r
- FreePool (TempDevicePathNode);\r
+ if (TempDevicePathNode != NULL) {\r
+ FreePool (TempDevicePathNode);\r
+ }\r
}\r
}\r
- goto Finish;\r
+ if (!EFI_ERROR (Status)) {\r
+ goto Finish;\r
+ }\r
}\r
\r
//\r
}\r
}\r
}\r
- goto Finish;\r
+ if (!EFI_ERROR (Status)) {\r
+ goto Finish;\r
+ }\r
}\r
}\r
\r