X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;ds=sidebyside;f=src%2Fgcrypt%2Fcipher.c;h=d8e4cc5166c6f003028ed8f12e46e397e7fee8c9;hb=171810e42712c7cfcd7bcfb5fe6c35f2a935e4c6;hp=176b62b19e95ef258f26c704c2d291312527485f;hpb=b0ffeb7eeb21920842382c302ca15ec0d758e9b6;p=tinc diff --git a/src/gcrypt/cipher.c b/src/gcrypt/cipher.c index 176b62b1..d8e4cc51 100644 --- a/src/gcrypt/cipher.c +++ b/src/gcrypt/cipher.c @@ -146,10 +146,9 @@ void cipher_close(cipher_t *cipher) { cipher->handle = NULL; } - if(cipher->key) { - free(cipher->key); - cipher->key = NULL; - } + free(cipher->key); + + memset(cipher, 0, sizeof(*cipher)); } size_t cipher_keylength(const cipher_t *cipher) { @@ -263,7 +262,7 @@ bool cipher_decrypt(cipher_t *cipher, const void *indata, size_t inlen, void *ou size_t origlen = inlen - padbyte; - for(int i = inlen - 1; i >= origlen; i--) + for(size_t i = inlen - 1; i >= origlen; i--) if(((uint8_t *)outdata)[i] != padbyte) { logger(DEBUG_ALWAYS, LOG_ERR, "Error while decrypting: invalid padding"); return false;