# HG changeset patch # User Olaf Wintermann # Date 1460281149 -7200 # Node ID fd9135bc7580e71e8be0041df58cf892f6ad04b2 # Parent 6b4ce32d0c4eaa9b73817bdc448657769240003d fixed crash when encrypted streams are empty diff -r 6b4ce32d0c4e -r fd9135bc7580 libidav/crypto.c --- a/libidav/crypto.c Wed Mar 23 19:03:48 2016 +0100 +++ b/libidav/crypto.c Sun Apr 10 11:39:09 2016 +0200 @@ -97,13 +97,15 @@ } void aes_decrypter_shutdown(AESDecrypter *dec) { - void *out = malloc(128); - int len = 0; - EVP_DecryptFinal_ex(&dec->ctx, out, &len); - dec->write(out, 1, len, dec->stream); - SHA256_Update(&dec->sha256, out, len); - free(out); - EVP_CIPHER_CTX_cleanup(&dec->ctx); + if(dec->init) { + void *out = malloc(128); + int len = 0; + EVP_DecryptFinal_ex(&dec->ctx, out, &len); + dec->write(out, 1, len, dec->stream); + SHA256_Update(&dec->sha256, out, len); + free(out); + EVP_CIPHER_CTX_cleanup(&dec->ctx); + } } void aes_decrypter_close(AESDecrypter *dec) {