]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Filesystem/SemihostFs/Arm/SemihostFs.c
SemihostFs: Fix check for read-only file or file-open
[mirror_edk2.git] / ArmPkg / Filesystem / SemihostFs / Arm / SemihostFs.c
index 5f1159d81a74060d10faae0a430d4aae06b2a4ed..447ab5631a3e311576f6312cf9b6d1e96460a9e7 100644 (file)
@@ -345,7 +345,8 @@ FileWrite (
   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
@@ -567,7 +568,8 @@ FileFlush (
   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