diff options
Diffstat (limited to 'src/balutil/BalBootstrapperEngine.cpp')
| -rw-r--r-- | src/balutil/BalBootstrapperEngine.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/balutil/BalBootstrapperEngine.cpp b/src/balutil/BalBootstrapperEngine.cpp index 6a0c66d6..b68ea7c2 100644 --- a/src/balutil/BalBootstrapperEngine.cpp +++ b/src/balutil/BalBootstrapperEngine.cpp | |||
| @@ -133,26 +133,28 @@ public: // IBootstrapperEngine | |||
| 133 | 133 | ||
| 134 | virtual STDMETHODIMP GetVariableVersion( | 134 | virtual STDMETHODIMP GetVariableVersion( |
| 135 | __in_z LPCWSTR wzVariable, | 135 | __in_z LPCWSTR wzVariable, |
| 136 | __out DWORD64* pqwValue | 136 | __out_ecount_opt(*pcchValue) LPWSTR wzValue, |
| 137 | __inout DWORD* pcchValue | ||
| 137 | ) | 138 | ) |
| 138 | { | 139 | { |
| 139 | HRESULT hr = S_OK; | 140 | HRESULT hr = S_OK; |
| 140 | BAENGINE_GETVARIABLEVERSION_ARGS args = { }; | 141 | BAENGINE_GETVARIABLEVERSION_ARGS args = { }; |
| 141 | BAENGINE_GETVARIABLEVERSION_RESULTS results = { }; | 142 | BAENGINE_GETVARIABLEVERSION_RESULTS results = { }; |
| 142 | 143 | ||
| 143 | ExitOnNull(pqwValue, hr, E_INVALIDARG, "pqwValue is required"); | 144 | ExitOnNull(pcchValue, hr, E_INVALIDARG, "pcchValue is required"); |
| 144 | 145 | ||
| 145 | args.cbSize = sizeof(args); | 146 | args.cbSize = sizeof(args); |
| 146 | args.wzVariable = wzVariable; | 147 | args.wzVariable = wzVariable; |
| 147 | 148 | ||
| 148 | results.cbSize = sizeof(results); | 149 | results.cbSize = sizeof(results); |
| 150 | results.wzValue = wzValue; | ||
| 151 | results.cchValue = *pcchValue; | ||
| 149 | 152 | ||
| 150 | hr = m_pfnBAEngineProc(BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLEVERSION, &args, &results, m_pvBAEngineProcContext); | 153 | hr = m_pfnBAEngineProc(BOOTSTRAPPER_ENGINE_MESSAGE_GETVARIABLEVERSION, &args, &results, m_pvBAEngineProcContext); |
| 151 | 154 | ||
| 152 | *pqwValue = results.qwValue; | 155 | *pcchValue = results.cchValue; |
| 153 | 156 | ||
| 154 | LExit: | 157 | LExit: |
| 155 | SecureZeroMemory(&results, sizeof(results)); | ||
| 156 | return hr; | 158 | return hr; |
| 157 | } | 159 | } |
| 158 | 160 | ||
| @@ -410,7 +412,7 @@ public: // IBootstrapperEngine | |||
| 410 | 412 | ||
| 411 | virtual STDMETHODIMP SetVariableVersion( | 413 | virtual STDMETHODIMP SetVariableVersion( |
| 412 | __in_z LPCWSTR wzVariable, | 414 | __in_z LPCWSTR wzVariable, |
| 413 | __in DWORD64 qwValue | 415 | __in_z_opt LPCWSTR wzValue |
| 414 | ) | 416 | ) |
| 415 | { | 417 | { |
| 416 | BAENGINE_SETVARIABLEVERSION_ARGS args = { }; | 418 | BAENGINE_SETVARIABLEVERSION_ARGS args = { }; |
| @@ -418,7 +420,7 @@ public: // IBootstrapperEngine | |||
| 418 | 420 | ||
| 419 | args.cbSize = sizeof(args); | 421 | args.cbSize = sizeof(args); |
| 420 | args.wzVariable = wzVariable; | 422 | args.wzVariable = wzVariable; |
| 421 | args.qwValue = qwValue; | 423 | args.wzValue = wzValue; |
| 422 | 424 | ||
| 423 | results.cbSize = sizeof(results); | 425 | results.cbSize = sizeof(results); |
| 424 | 426 | ||
