aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-11-24 18:32:47 +0000
committerWerner Koch <[email protected]>2014-11-24 18:32:47 +0000
commit69767ccf4218d0dc5ef2d7e141be0f14c88fea59 (patch)
tree5fce50ac48ad4ffd7e0d09a8c4d9342a4af3d6f6
parentgpg: Make the use of "--verify FILE" for detached sigs harder. (diff)
downloadgnupg-69767ccf4218d0dc5ef2d7e141be0f14c88fea59.tar.gz
gnupg-69767ccf4218d0dc5ef2d7e141be0f14c88fea59.zip
gpg: Fix a NULL-deref for invalid input data.
* g10/mainproc.c (proc_encrypted): Take care of canceled passpharse entry. -- GnuPG-bug-id: 1761 Signed-off-by: Werner Koch <[email protected]> (backported from commit 32e85668b82f6fbcb824eea9548970804fb41d9e)
-rw-r--r--g10/mainproc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/g10/mainproc.c b/g10/mainproc.c
index d355a21c5..15baefed6 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -540,7 +540,9 @@ proc_encrypted( CTX c, PACKET *pkt )
result = -1;
else if( !c->dek && !c->last_was_session_key ) {
int algo;
- STRING2KEY s2kbuf, *s2k = NULL;
+ STRING2KEY s2kbuf;
+ STRING2KEY *s2k = NULL;
+ int canceled;
if(opt.override_session_key)
{
@@ -580,9 +582,13 @@ proc_encrypted( CTX c, PACKET *pkt )
log_info (_("assuming %s encrypted data\n"), "IDEA");
}
- c->dek = passphrase_to_dek ( NULL, 0, algo, s2k, 0, NULL, NULL );
+ c->dek = passphrase_to_dek ( NULL, 0, algo, s2k, 0, NULL,&canceled);
if (c->dek)
c->dek->algo_info_printed = 1;
+ else if (canceled)
+ result = G10ERR_CANCELED;
+ else
+ result = G10ERR_PASSPHRASE;
}
}
else if( !c->dek )