From: Oliver Kurth Date: Thu, 30 Nov 2017 23:17:27 +0000 (-0800) Subject: VGAuth changes: X-Git-Tag: stable-10.2.0~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e41c45536332a9195f5336bdcd0a94e11f8e9cfb;p=thirdparty%2Fopen-vm-tools.git VGAuth changes: - add calling LoadUserProfile()/UnloadUserProfile() in VGAuth impersonation/unimpersonation code paths - VMTools side code change to use the new VGAuth SDK. --- diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c index 5c1a7fdc5..ada04183b 100644 --- a/open-vm-tools/services/plugins/vix/vixTools.c +++ b/open-vm-tools/services/plugins/vix/vixTools.c @@ -11380,6 +11380,10 @@ GuestAuthPasswordAuthenticateImpersonate( VGAuthContext *ctx = NULL; VGAuthError vgErr; VGAuthUserHandle *newHandle = NULL; + VGAuthExtraParams extraParams[1]; + + extraParams[0].name = VGAUTH_PARAM_LOAD_USER_PROFILE; + extraParams[0].value = VGAUTH_PARAM_VALUE_TRUE; err = VixMsg_DeObfuscateNamePassword(obfuscatedNamePassword, &username, @@ -11404,7 +11408,9 @@ GuestAuthPasswordAuthenticateImpersonate( goto done; } - vgErr = VGAuth_Impersonate(ctx, newHandle, 0, NULL); + vgErr = VGAuth_Impersonate(ctx, newHandle, + (int)ARRAYSIZE(extraParams), + extraParams); if (VGAUTH_FAILED(vgErr)) { err = VixToolsTranslateVGAuthError(vgErr); goto done; @@ -11464,6 +11470,10 @@ GuestAuthSAMLAuthenticateAndImpersonate( VGAuthContext *ctx = NULL; VGAuthError vgErr; VGAuthUserHandle *newHandle = NULL; + VGAuthExtraParams extraParams[1]; + + extraParams[0].name = VGAUTH_PARAM_LOAD_USER_PROFILE; + extraParams[0].value = VGAUTH_PARAM_VALUE_TRUE; err = VixMsg_DeObfuscateNamePassword(obfuscatedNamePassword, &token, @@ -11544,7 +11554,9 @@ GuestAuthSAMLAuthenticateAndImpersonate( #if ALLOW_LOCAL_SYSTEM_IMPERSONATION_BYPASS impersonate: #endif - vgErr = VGAuth_Impersonate(ctx, newHandle, 0, NULL); + vgErr = VGAuth_Impersonate(ctx, newHandle, + (int)ARRAYSIZE(extraParams), + extraParams); if (VGAUTH_FAILED(vgErr)) { err = VixToolsTranslateVGAuthError(vgErr); goto done;