]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
VGAuth changes:
authorOliver Kurth <okurth@vmware.com>
Tue, 24 Oct 2017 21:07:35 +0000 (14:07 -0700)
committerOliver Kurth <okurth@vmware.com>
Tue, 24 Oct 2017 21:07:35 +0000 (14:07 -0700)
 - add calling LoadUserProfile()/UnloadUserProfile() in VGAuth
   impersonation/unimpersonation code paths
 - VMTools side code change to use the new VGAuth SDK.

open-vm-tools/services/plugins/vix/vixTools.c

index c259a3b25c72059f747130388a8de9f3a2f3f7a8..2c3e023de4099c8d0896f58f21cb32babdd61278 100644 (file)
@@ -11376,6 +11376,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,
@@ -11400,7 +11404,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;
@@ -11460,6 +11466,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,
@@ -11540,7 +11550,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;