Module: wine Branch: master Commit: 03afdb0217068d3fb8869ccfce5f60cbcd3f0a45 URL: http://source.winehq.org/git/wine.git/?a=commit;h=03afdb0217068d3fb8869ccfce...
Author: Nicolas Le Cam niko.lecam@gmail.com Date: Tue Apr 21 02:08:31 2009 +0200
msi: Enfore use of GetFileAttributes return value.
---
dlls/msi/appsearch.c | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c index 18a031c..ff54be0 100644 --- a/dlls/msi/appsearch.c +++ b/dlls/msi/appsearch.c @@ -178,7 +178,8 @@ 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 +299,8 @@ 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 +903,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 +936,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 +973,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);