mirror of
https://github.com/acidanthera/audk.git
synced 2025-09-23 17:57:45 +02:00
FatPkg: Early-exit from writing functions when enforced RO mode
Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com>
This commit is contained in:
parent
5b09f83e0c
commit
acfb8ae13a
@ -31,6 +31,10 @@ FatDelete (
|
||||
EFI_STATUS Status;
|
||||
UINTN Round;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
IFile = IFILE_FROM_FHAND (FHand);
|
||||
OFile = IFile->OFile;
|
||||
|
||||
|
@ -73,6 +73,10 @@ FatStoreDirEnt (
|
||||
UINT8 EntryCount;
|
||||
UINT8 LfnOrdinal;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
EntryPos = DirEnt->EntryPos;
|
||||
EntryCount = DirEnt->EntryCount;
|
||||
//
|
||||
@ -709,6 +713,9 @@ FatExpandODir (
|
||||
IN FAT_OFILE *OFile
|
||||
)
|
||||
{
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
return FatExpandOFile (OFile, OFile->FileSize + OFile->Volume->ClusterSize);
|
||||
}
|
||||
|
||||
@ -954,6 +961,10 @@ FatSetVolumeEntry (
|
||||
FAT_DIRENT LabelDirEnt;
|
||||
FAT_OFILE *Root;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
Root = Volume->Root;
|
||||
Status = FatSeekVolumeId (Volume->Root, &LabelDirEnt);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@ -1001,6 +1012,10 @@ FatCreateDotDirEnts (
|
||||
EFI_STATUS Status;
|
||||
FAT_DIRENT *DirEnt;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
Status = FatExpandODir (OFile);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
@ -1048,6 +1063,10 @@ FatCreateDirEnt (
|
||||
FAT_ODIR *ODir;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
ASSERT (OFile != NULL);
|
||||
ODir = OFile->ODir;
|
||||
ASSERT (ODir != NULL);
|
||||
@ -1105,6 +1124,10 @@ FatRemoveDirEnt (
|
||||
{
|
||||
FAT_ODIR *ODir;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
ODir = OFile->ODir;
|
||||
if (ODir->CurrentCursor == &DirEnt->Link) {
|
||||
//
|
||||
|
@ -362,6 +362,10 @@ FatShrinkEof (
|
||||
UINTN Cluster;
|
||||
UINTN LastCluster;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
Volume = OFile->Volume;
|
||||
ASSERT_VOLUME_LOCKED (Volume);
|
||||
|
||||
@ -440,6 +444,10 @@ FatGrowEof (
|
||||
UINTN NewCluster;
|
||||
UINTN ClusterCount;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
//
|
||||
// For FAT file system, the max file is 4GB.
|
||||
//
|
||||
|
@ -35,6 +35,10 @@ FatFlushEx (
|
||||
EFI_STATUS Status;
|
||||
FAT_TASK *Task;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
IFile = IFILE_FROM_FHAND (FHand);
|
||||
OFile = IFile->OFile;
|
||||
Volume = OFile->Volume;
|
||||
@ -112,6 +116,9 @@ FatFlush (
|
||||
IN EFI_FILE_PROTOCOL *FHand
|
||||
)
|
||||
{
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
return FatFlushEx (FHand, NULL);
|
||||
}
|
||||
|
||||
|
@ -211,6 +211,10 @@ FatIFileAccess (
|
||||
UINT64 EndPosition;
|
||||
FAT_TASK *Task;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode) && IoMode == WriteData) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
IFile = IFILE_FROM_FHAND (FHand);
|
||||
OFile = IFile->OFile;
|
||||
Volume = OFile->Volume;
|
||||
@ -414,6 +418,9 @@ FatWrite (
|
||||
IN VOID *Buffer
|
||||
)
|
||||
{
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
return FatIFileAccess (FHand, WriteData, BufferSize, Buffer, NULL);
|
||||
}
|
||||
|
||||
@ -437,6 +444,9 @@ FatWriteEx (
|
||||
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||
)
|
||||
{
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
return FatIFileAccess (FHand, WriteData, &Token->BufferSize, Token->Buffer, Token);
|
||||
}
|
||||
|
||||
@ -471,6 +481,10 @@ FatAccessOFile (
|
||||
EFI_STATUS Status;
|
||||
UINTN BufferSize;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode) && IoMode == WriteData) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
BufferSize = *DataBufferSize;
|
||||
Volume = OFile->Volume;
|
||||
ASSERT_VOLUME_LOCKED (Volume);
|
||||
@ -542,6 +556,10 @@ FatExpandOFile (
|
||||
EFI_STATUS Status;
|
||||
UINTN WritePos;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
WritePos = OFile->FileSize;
|
||||
Status = FatGrowEof (OFile, ExpandedSize);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
@ -575,6 +593,10 @@ FatWriteZeroPool (
|
||||
UINTN BufferSize;
|
||||
UINTN WriteSize;
|
||||
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
AppendedSize = OFile->FileSize - WritePos;
|
||||
BufferSize = AppendedSize;
|
||||
if (AppendedSize > FAT_MAX_ALLOCATE_SIZE) {
|
||||
@ -624,6 +646,10 @@ FatTruncateOFile (
|
||||
IN UINTN TruncatedSize
|
||||
)
|
||||
{
|
||||
if (FeaturePcdGet (PcdFatReadOnlyMode)) {
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
OFile->FileSize = TruncatedSize;
|
||||
return FatShrinkEof (OFile);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user