Fix memory leak on DeltaPerformerTest.
The ApplyDeltaFile() function creates a DeltaPerformer that should be
free'd by the caller test. Although this is not the best design, we
need to first fix the memory leaks on the unittest code.
BUG=chromium:378548
TEST=`FEATURES="test" USE="clang asan" emerge-link update_engine` doesn't complain at all.
Change-Id: I92d7ee0f7f9534c5631d4bc988f433ddd66173a0
Reviewed-on: https://chromium-review.googlesource.com/202068
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
index 8051b32..dc0b202 100644
--- a/delta_performer_unittest.cc
+++ b/delta_performer_unittest.cc
@@ -797,7 +797,7 @@
SignatureTest signature_test,
bool hash_checks_mandatory) {
DeltaState state;
- DeltaPerformer *performer;
+ DeltaPerformer *performer = nullptr;
GenerateDeltaFile(full_kernel, full_rootfs, noop, chunk_size,
signature_test, &state);
@@ -810,6 +810,7 @@
&state, hash_checks_mandatory, kValidOperationData,
&performer);
VerifyPayload(performer, &state, signature_test);
+ delete performer;
}
// Calls delta performer's Write method by pretending to pass in bytes from a
@@ -949,9 +950,10 @@
ScopedPathUnlinker delta_unlinker(state.delta_path);
ScopedPathUnlinker old_kernel_unlinker(state.old_kernel);
ScopedPathUnlinker new_kernel_unlinker(state.new_kernel);
- DeltaPerformer *performer;
+ DeltaPerformer *performer = nullptr;
ApplyDeltaFile(true, true, false, kSignatureGenerated,
&state, hash_checks_mandatory, op_hash_test, &performer);
+ delete performer;
}