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 | ||