19 IN EFI_DISK_IO_PROTOCOL *This,
27 return EFI_INVALID_PARAMETER;
31 return EFI_OUT_OF_RESOURCES;
49 if (Instance != NULL) {
50 if (Instance->DiskIo != NULL) {
51 FreePool (Instance->DiskIo);
54 if (Instance->BlockIo != NULL) {
55 if (Instance->BlockIo->Media != NULL) {
56 FreePool (Instance->BlockIo->Media);
59 FreePool (Instance->BlockIo);
62 if (Instance->RootIndex != NULL) {
63 FreeAttr (&Instance->RootIndex->Attr);
64 FreeAttr (&Instance->MftStart->Attr);
65 FreePool (Instance->RootIndex->FileRecord);
66 FreePool (Instance->MftStart->FileRecord);
67 FreePool (Instance->RootIndex->File);
76 CONST UINT8 *FuzzData,
82 EFI_FILE_PROTOCOL *This;
86 EFI_FILE_PROTOCOL *NewHandle;
102 FileName = AllocateZeroPool (BufferSize);
103 if (FileName == NULL) {
121 Instance = AllocateZeroPool (
sizeof (
EFI_FS));
122 if (Instance == NULL) {
129 Instance->
DiskIo = AllocateZeroPool (
sizeof (EFI_DISK_IO_PROTOCOL));
130 if (Instance->
DiskIo == NULL) {
139 Instance->
BlockIo = AllocateZeroPool (
sizeof (EFI_BLOCK_IO_PROTOCOL));
140 if (Instance->
BlockIo == NULL) {
147 Instance->
BlockIo->Media = AllocateZeroPool (
sizeof (EFI_BLOCK_IO_MEDIA));
148 if (Instance->
BlockIo->Media == NULL) {
155 Instance->
EfiFile.Revision = EFI_FILE_PROTOCOL_REVISION2;
168 if (EFI_ERROR (Status)) {
178 Status =
FileOpen (This, &NewHandle, FileName, EFI_FILE_MODE_READ, 0);
179 if (Status == EFI_SUCCESS) {
180 Buffer = AllocateZeroPool (100);
188 if (Status == EFI_BUFFER_TOO_SMALL) {
189 TmpBuffer = ReallocatePool (100, BufferSize,
Buffer);
190 if (TmpBuffer == NULL) {
212 if (Status == EFI_BUFFER_TOO_SMALL) {
213 Info = AllocateZeroPool (
Len);
225 if (Status == EFI_BUFFER_TOO_SMALL) {
226 Info = AllocateZeroPool (
Len);
238 if (Status == EFI_BUFFER_TOO_SMALL) {
239 Info = AllocateZeroPool (
Len);
273 if ((b =
UserReadFile ((argc > 1) ? argv[1] :
"in.bin", &f)) == NULL) {
274 DEBUG ((DEBUG_ERROR,
"Read fail\n"));
VOID FreeAttr(IN NTFS_ATTR *Attr)
EFI_STATUS NtfsMount(IN EFI_FS *FileSystem)
EFI_STATUS EFIAPI FileSetInfo(IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer)
EFI_STATUS EFIAPI FileGetInfo(IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *Type, IN OUT UINTN *Len, OUT VOID *Data)
EFI_STATUS EFIAPI FileClose(IN EFI_FILE_PROTOCOL *This)
EFI_STATUS EFIAPI FileFlush(IN EFI_FILE_PROTOCOL *This)
EFI_STATUS EFIAPI FileDelete(IN EFI_FILE_PROTOCOL *This)
EFI_STATUS EFIAPI FileSetPosition(IN EFI_FILE_PROTOCOL *This, IN UINT64 Position)
EFI_STATUS EFIAPI FileOpen(IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes)
EFI_STATUS EFIAPI FileWrite(IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, IN VOID *Buffer)
EFI_STATUS EFIAPI FileGetPosition(IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position)
EFI_STATUS EFIAPI FileRead(IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]
EFI_STATUS EFIAPI FuzzReadDisk(IN EFI_DISK_IO_PROTOCOL *This, IN UINT32 MediaId, IN UINT64 Offset, IN UINTN BufferSize, OUT VOID *Buffer)
CONST UINT8 * mFuzzPointer
VOID FreeAll(IN CHAR16 *FileName, IN EFI_FS *Instance)
INT32 LLVMFuzzerTestOneInput(CONST UINT8 *FuzzData, UINTN FuzzSize)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
UINT8 * UserReadFile(IN CONST CHAR8 *FileName, OUT UINT32 *Size)
EFI_GUID gEfiFileInfoGuid
EFI_GUID gEfiFileSystemInfoGuid
#define ASAN_CHECK_MEMORY_REGION(addr, size)
EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid
EFI_FILE_PROTOCOL EfiFile
EFI_DISK_IO_PROTOCOL * DiskIo
EFI_BLOCK_IO_PROTOCOL * BlockIo