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