Fixed double-free when destroy was called after a failed gpg encryption/decryption.
git-svn-id: file:///home/mbr/svn/fwknop/trunk@80 510a4753-2344-4c79-9c09-4d669213fbeb
This commit is contained in:
parent
339db83129
commit
7e2d52e38f
@ -228,7 +228,7 @@ gpgme_encrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
if(gpg_err_code(err) != GPG_ERR_NO_ERROR)
|
if(gpg_err_code(err) != GPG_ERR_NO_ERROR)
|
||||||
{
|
{
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
return(FKO_ERROR_GPGME_PLAINTEXT_DATA_OBJ);
|
return(FKO_ERROR_GPGME_PLAINTEXT_DATA_OBJ);
|
||||||
@ -241,6 +241,7 @@ gpgme_encrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
{
|
{
|
||||||
gpgme_data_release(plaintext);
|
gpgme_data_release(plaintext);
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
@ -264,6 +265,7 @@ gpgme_encrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
{
|
{
|
||||||
gpgme_data_release(plaintext);
|
gpgme_data_release(plaintext);
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
@ -279,6 +281,7 @@ gpgme_encrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
gpgme_data_release(plaintext);
|
gpgme_data_release(plaintext);
|
||||||
gpgme_data_release(cipher);
|
gpgme_data_release(cipher);
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
@ -299,6 +302,7 @@ gpgme_encrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
gpgme_data_release(plaintext);
|
gpgme_data_release(plaintext);
|
||||||
gpgme_data_release(cipher);
|
gpgme_data_release(cipher);
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
@ -356,6 +360,7 @@ gpgme_decrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
if(gpg_err_code(err) != GPG_ERR_NO_ERROR)
|
if(gpg_err_code(err) != GPG_ERR_NO_ERROR)
|
||||||
{
|
{
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
@ -369,6 +374,7 @@ gpgme_decrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
{
|
{
|
||||||
gpgme_data_release(plaintext);
|
gpgme_data_release(plaintext);
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
@ -387,6 +393,7 @@ gpgme_decrypt(fko_ctx_t fko_ctx, unsigned char *indata, size_t in_len, const cha
|
|||||||
gpgme_data_release(plaintext);
|
gpgme_data_release(plaintext);
|
||||||
gpgme_data_release(cipher);
|
gpgme_data_release(cipher);
|
||||||
gpgme_release(gpg_ctx);
|
gpgme_release(gpg_ctx);
|
||||||
|
fko_ctx->gpg_ctx = NULL;
|
||||||
|
|
||||||
fko_ctx->gpg_err = err;
|
fko_ctx->gpg_err = err;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user