Ensure that CBB is |CBB_zero|ed before possibly calling |CBB_cleanup|.

Change-Id: Ic1f58f87c67104c8a51af59086a1bb1e5ccb0e5b
Reviewed-on: https://boringssl-review.googlesource.com/13084
Reviewed-by: Adam Langley <alangley@gmail.com>
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <alangley@gmail.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/pkcs8/p5_pbev2.c b/crypto/pkcs8/p5_pbev2.c
index e48191d..ae187ac 100644
--- a/crypto/pkcs8/p5_pbev2.c
+++ b/crypto/pkcs8/p5_pbev2.c
@@ -89,6 +89,9 @@
     return NULL;
   }
 
+  CBB cbb;
+  CBB_zero(&cbb);
+
   /* Generate a random PBKDF2 salt if necessary. This will be parsed back out of
    * the serialized |X509_ALGOR|. */
   X509_ALGOR *ret = NULL;
@@ -109,7 +112,7 @@
   }
 
   /* See RFC 2898, appendix A. */
-  CBB cbb, algorithm, param, kdf, kdf_param, salt_cbb, cipher_cbb, iv_cbb;
+  CBB algorithm, param, kdf, kdf_param, salt_cbb, cipher_cbb, iv_cbb;
   if (!CBB_init(&cbb, 16) ||
       !CBB_add_asn1(&cbb, &algorithm, CBS_ASN1_SEQUENCE) ||
       !OBJ_nid2cbb(&algorithm, NID_pbes2) ||