EVP_CIPHER_CTX_cleanup cannot fail.
There is exactly one implementation and it doesn't fail. Plus a cleanup function that can fail is very bad manners; the caller has no choice but to leak at that point. Change-Id: I5b524617ef37bc7d92273472fa742416ea7dfd43 Reviewed-on: https://boringssl-review.googlesource.com/3564 Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
committed by
Adam Langley
parent
86058a256b
commit
3f5917f320
@@ -94,8 +94,8 @@ EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void) {
|
||||
}
|
||||
|
||||
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c) {
|
||||
if (c->cipher != NULL && c->cipher->cleanup && !c->cipher->cleanup(c)) {
|
||||
return 0;
|
||||
if (c->cipher != NULL && c->cipher->cleanup) {
|
||||
c->cipher->cleanup(c);
|
||||
}
|
||||
|
||||
if (c->cipher_data) {
|
||||
|
||||
@@ -445,13 +445,12 @@ static int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const uint8_t *key,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aes_gcm_cleanup(EVP_CIPHER_CTX *c) {
|
||||
static void aes_gcm_cleanup(EVP_CIPHER_CTX *c) {
|
||||
EVP_AES_GCM_CTX *gctx = c->cipher_data;
|
||||
OPENSSL_cleanse(&gctx->gcm, sizeof(gctx->gcm));
|
||||
if (gctx->iv != c->iv) {
|
||||
OPENSSL_free(gctx->iv);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* increment counter (64-bit int) by 1 */
|
||||
|
||||
@@ -97,7 +97,7 @@ struct evp_cipher_st {
|
||||
int (*cipher)(EVP_CIPHER_CTX *ctx, uint8_t *out, const uint8_t *in,
|
||||
size_t inl);
|
||||
|
||||
int (*cleanup)(EVP_CIPHER_CTX *);
|
||||
void (*cleanup)(EVP_CIPHER_CTX *);
|
||||
|
||||
int (*ctrl)(EVP_CIPHER_CTX *, int type, int arg, void *ptr);
|
||||
};
|
||||
|
||||
@@ -117,8 +117,8 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx);
|
||||
* |EVP_CIPHER_CTX_init| and returns it, or NULL on allocation failure. */
|
||||
OPENSSL_EXPORT EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
|
||||
|
||||
/* EVP_CIPHER_CTX_cleanup frees any memory referenced by |ctx|. It returns one
|
||||
* on success and zero otherwise. */
|
||||
/* EVP_CIPHER_CTX_cleanup frees any memory referenced by |ctx|. It returns
|
||||
* one. */
|
||||
OPENSSL_EXPORT int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx);
|
||||
|
||||
/* EVP_CIPHER_CTX_free calls |EVP_CIPHER_CTX_cleanup| on |ctx| and then frees
|
||||
|
||||
Reference in New Issue
Block a user