Fix a spec conformance issue that "Attributes" should only be checked when OpenMode...
authorqhuang8 <qhuang8@65ba2f78-6c18-0410-a7b4-885970cf29fa>
Tue, 24 Mar 2009 13:56:38 +0000 (13:56 +0000)
committerqhuang8 <qhuang8@65ba2f78-6c18-0410-a7b4-885970cf29fa>
Tue, 24 Mar 2009 13:56:38 +0000 (13:56 +0000)
git-svn-id: https://fat-driver2.tianocore.org/svn/fat-driver2/trunk@36 65ba2f78-6c18-0410-a7b4-885970cf29fa

FatPkg/EnhancedFatDxe/Open.c

index 5be2cef..1681723 100644 (file)
@@ -239,19 +239,14 @@ Returns:
   default:\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+  \r
   //\r
-  // Check for valid attributes\r
+  // Check for valid Attributes for file creation case. \r
   //\r
-  if (Attributes & (~EFI_FILE_VALID_ATTR)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-  //\r
-  // Can't open for create and apply the read only attribute\r
-  //\r
-  if ((OpenMode & EFI_FILE_MODE_CREATE) && (Attributes & EFI_FILE_READ_ONLY)) {\r
-    return EFI_INVALID_PARAMETER;\r
+  if (((OpenMode & EFI_FILE_MODE_CREATE) != 0) && (Attributes & (EFI_FILE_READ_ONLY | (~EFI_FILE_VALID_ATTR))) != 0) {\r
+       return EFI_INVALID_PARAMETER;\r
   }\r
-\r
+  \r
   IFile = IFILE_FROM_FHAND (FHand);\r
   OFile = IFile->OFile;\r
 \r