From: VMware, Inc <> Date: Fri, 18 Sep 2009 21:39:23 +0000 (-0700) Subject: Internal branch sync. Included in this change: X-Git-Tag: 2009.09.18-193784~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc089ddaf5e1f56b53779ab62f1137c26798e231;p=thirdparty%2Fopen-vm-tools.git Internal branch sync. Included in this change: . don't translate non-system errors in VIX handler. Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/lib/include/system.h b/open-vm-tools/lib/include/system.h index ba104f6c6..8049af0a0 100644 --- a/open-vm-tools/lib/include/system.h +++ b/open-vm-tools/lib/include/system.h @@ -64,6 +64,7 @@ typedef struct MonListNode { BOOL isPrimary; DWORD bpp; BOOL isActive; + uint32 srcId; DblLnkLst_Links l; } MonListNode; diff --git a/open-vm-tools/lib/include/vixOpenSource.h b/open-vm-tools/lib/include/vixOpenSource.h index 8ea2646ed..aeeebdd28 100644 --- a/open-vm-tools/lib/include/vixOpenSource.h +++ b/open-vm-tools/lib/include/vixOpenSource.h @@ -94,8 +94,10 @@ VixError Vix_TranslateCOMError(HRESULT comError); * These error codes are in addition to those. */ enum { - VIX_E_OP_NOT_SUPPORTED_ON_NON_VMWARE_VM = 3038 + VIX_E_OP_NOT_SUPPORTED_ON_NON_VMWARE_VM = 3038, + /* Reg Errors*/ + VIX_E_REG_INCORRECT_VALUE_TYPE = 25000 /* WARNING. Do not exceed 2**16 */ }; diff --git a/open-vm-tools/lib/vixTools/vixTools.c b/open-vm-tools/lib/vixTools/vixTools.c index 9b8827c79..18fa9e32a 100644 --- a/open-vm-tools/lib/vixTools/vixTools.c +++ b/open-vm-tools/lib/vixTools/vixTools.c @@ -1216,7 +1216,14 @@ VixToolsReadRegistry(VixCommandRequestHeader *requestMsg, // IN if (VIX_PROPERTYTYPE_INTEGER == registryRequest->expectedRegistryKeyType) { errResult = Registry_ReadInteger(registryPathName, &valueInt); if (ERROR_SUCCESS != errResult) { - err = Vix_TranslateSystemError(errResult); + /* + * E_UNEXPECTED isn't a system err. Don't use Vix_TranslateSystemError + */ + if (E_UNEXPECTED == errResult) { + err = VIX_E_REG_INCORRECT_VALUE_TYPE; + } else { + err = Vix_TranslateSystemError(errResult); + } goto abort; } @@ -1228,7 +1235,14 @@ VixToolsReadRegistry(VixCommandRequestHeader *requestMsg, // IN } else if (VIX_PROPERTYTYPE_STRING == registryRequest->expectedRegistryKeyType) { errResult = Registry_ReadString(registryPathName, &valueStr); if (ERROR_SUCCESS != errResult) { - err = Vix_TranslateSystemError(errResult); + /* + * E_UNEXPECTED isn't a system err. Don't use Vix_TranslateSystemError + */ + if (E_UNEXPECTED == errResult) { + err = VIX_E_REG_INCORRECT_VALUE_TYPE; + } else { + err = Vix_TranslateSystemError(errResult); + } goto abort; } } else {