Nicolas Le Cam : msi: Enfore use of GetFileAttributes return value.
Module: wine Branch: master Commit: 03afdb0217068d3fb8869ccfce5f60cbcd3f0a45 URL: http://source.winehq.org/git/wine.git/?a=commit;h=03afdb0217068d3fb8869ccfce... Author: Nicolas Le Cam <niko.lecam(a)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);
participants (1)
-
Alexandre Julliard