[PATCH 1/4] msi: Properly check GetTokenInformation() return values.
Serge Gautherie
winehq-git_serge_180711 at gautherie.fr
Sun Jul 19 03:18:27 CDT 2020
Signed-off-by: Serge Gautherie <winehq-git_serge_180711 at gautherie.fr>
---
dlls/msi/registry.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c
index 4d439d0..f4a4286 100644
--- a/dlls/msi/registry.c
+++ b/dlls/msi/registry.c
@@ -426,13 +426,19 @@ static WCHAR *get_user_sid(void)
}
if (!GetTokenInformation( token, TokenUser, user, size, &size ))
{
+ DWORD le = GetLastError();
msi_free( user );
- if (GetLastError() != ERROR_INSUFFICIENT_BUFFER || !(user = msi_alloc( size )))
+ if (le != ERROR_INSUFFICIENT_BUFFER || !(user = msi_alloc( size )))
{
CloseHandle( token );
return NULL;
}
- GetTokenInformation( token, TokenUser, user, size, &size );
+ if (!GetTokenInformation( token, TokenUser, user, size, &size ))
+ {
+ msi_free( user );
+ CloseHandle( token );
+ return NULL;
+ }
}
CloseHandle( token );
if (!ConvertSidToStringSidW( user->User.Sid, &ret ))
--
2.10.0.windows.1
More information about the wine-devel
mailing list