Index: base/crypto/signature_creator_mac.cc |
diff --git a/base/crypto/signature_creator_mac.cc b/base/crypto/signature_creator_mac.cc |
index d10d54ccf401bfc48cdc5509e66831bb0f3101e8..1001c647da84124c83aa63fc56ec3235cdbfe5d0 100644 |
--- a/base/crypto/signature_creator_mac.cc |
+++ b/base/crypto/signature_creator_mac.cc |
@@ -59,19 +59,15 @@ bool SignatureCreator::Update(const uint8* data_part, int data_part_len) { |
} |
bool SignatureCreator::Final(std::vector<uint8>* signature) { |
- CSSM_DATA sig; |
- memset(&sig, 0, sizeof(CSSM_DATA)); // Allow CSSM allocate memory; |
- CSSM_RETURN crtn = CSSM_SignDataFinal(sig_handle_, &sig); |
+ ScopedCSSMData sig; |
+ CSSM_RETURN crtn = CSSM_SignDataFinal(sig_handle_, sig); |
if (crtn) { |
NOTREACHED(); |
return false; |
} |
- signature->assign(sig.Data, sig.Data + sig.Length); |
- kCssmMemoryFunctions.free_func(sig.Data, NULL); // Release data alloc'd |
- // by CSSM |
- |
+ signature->assign(sig->Data, sig->Data + sig->Length); |
return true; |
} |