Fcb = SEMIHOST_FCB_FROM_THIS(File);\r
\r
// We cannot write a read-only file\r
- if (Fcb->OpenMode & EFI_FILE_READ_ONLY) {\r
+ if ((Fcb->Info.Attribute & EFI_FILE_READ_ONLY)\r
+ || !(Fcb->OpenMode & EFI_FILE_MODE_WRITE)) {\r
return EFI_ACCESS_DENIED;\r
}\r
\r
if (Fcb->IsRoot) {\r
return EFI_SUCCESS;\r
} else {\r
- if (Fcb->Info.Attribute & EFI_FILE_READ_ONLY) {\r
+ if ((Fcb->Info.Attribute & EFI_FILE_READ_ONLY)\r
+ || !(Fcb->OpenMode & EFI_FILE_MODE_WRITE)) {\r
return EFI_ACCESS_DENIED;\r
} else {\r
return EFI_SUCCESS;\r