]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
VGAuth changes:
authorOliver Kurth <okurth@vmware.com>
Thu, 30 Nov 2017 23:17:27 +0000 (15:17 -0800)
committerOliver Kurth <okurth@vmware.com>
Thu, 30 Nov 2017 23:17:27 +0000 (15:17 -0800)
 - 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 5c1a7fdc594cb441b9520000b06fda914410bb9b..ada04183b28c71f56f344fbaa8f7099aa8f9589d 100644 (file)
@@ -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;