aboutsummaryrefslogtreecommitdiff
path: root/src/balutil/BalBootstrapperEngine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/balutil/BalBootstrapperEngine.cpp')
-rw-r--r--src/balutil/BalBootstrapperEngine.cpp14
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