diff options
author | Werner Koch <[email protected]> | 2014-11-24 18:32:47 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-11-24 18:32:47 +0000 |
commit | 69767ccf4218d0dc5ef2d7e141be0f14c88fea59 (patch) | |
tree | 5fce50ac48ad4ffd7e0d09a8c4d9342a4af3d6f6 | |
parent | gpg: Make the use of "--verify FILE" for detached sigs harder. (diff) | |
download | gnupg-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.c | 10 |
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 ) |