msi: Enfore use of GetFileAttributes return value.

Nicolas Le Cam niko.lecam at gmail.com
Mon Apr 20 19:08:31 CDT 2009


---
 dlls/msi/appsearch.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c
index 18a031c..7a74810 100644
--- a/dlls/msi/appsearch.c
+++ b/dlls/msi/appsearch.c
@@ -178,7 +178,7 @@ static LPWSTR app_search_file(LPWSTR path, MSISIGNATURE *sig)
     }
 
     attr = GetFileAttributesW(path);
-    if (attr == INVALID_FILE_ATTRIBUTES || attr == FILE_ATTRIBUTE_DIRECTORY)
+    if (attr == INVALID_FILE_ATTRIBUTES || (attr & FILE_ATTRIBUTE_DIRECTORY))
         return NULL;
 
     size = GetFileVersionInfoSizeW(path, &handle);
@@ -298,7 +298,7 @@ static UINT ACTION_AppSearchComponents(MSIPACKAGE *package, LPWSTR *appValue, MS
         lstrcatW(path, MSI_RecordGetString(rec, 2));
 
         attr = GetFileAttributesW(path);
-        if (attr != INVALID_FILE_ATTRIBUTES && attr != FILE_ATTRIBUTE_DIRECTORY)
+        if (attr != INVALID_FILE_ATTRIBUTES && !(attr & FILE_ATTRIBUTE_DIRECTORY))
             *appValue = strdupW(path);
     }
 
@@ -901,7 +901,8 @@ static UINT ACTION_SearchDirectory(MSIPACKAGE *package, MSISIGNATURE *sig,
     }
 
     attr = GetFileAttributesW(val);
-    if ((attr & FILE_ATTRIBUTE_DIRECTORY) &&
+    if (attr != INVALID_FILE_ATTRIBUTES &&
+        (attr & FILE_ATTRIBUTE_DIRECTORY) &&
         val && val[lstrlenW(val) - 1] != '\\')
     {
         val = msi_realloc(val, (lstrlenW(val) + 2) * sizeof(WCHAR));
@@ -933,7 +934,7 @@ static UINT ACTION_AppSearchDr(MSIPACKAGE *package, LPWSTR *appValue, MSISIGNATU
     WCHAR expanded[MAX_PATH];
     MSIRECORD *row;
     int depth;
-    DWORD sz;
+    DWORD sz, attr;
     UINT rc;
 
     TRACE("%s\n", debugstr_w(sig->Name));
@@ -970,7 +971,9 @@ static UINT ACTION_AppSearchDr(MSIPACKAGE *package, LPWSTR *appValue, MSISIGNATU
 
     if (parent)
     {
-        if (!(GetFileAttributesW(parent) & FILE_ATTRIBUTE_DIRECTORY))
+        attr = GetFileAttributesW(parent);
+        if (attr != INVALID_FILE_ATTRIBUTES &&
+            !(attr & FILE_ATTRIBUTE_DIRECTORY))
         {
             PathRemoveFileSpecW(parent);
             PathAddBackslashW(parent);
-- 
1.6.0.4


--=-uSbb0XygL1RSCiFWn/E9--




More information about the wine-patches mailing list