mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-01 16:33:02 +01:00
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 <wk@gnupg.org>
This commit is contained in:
parent
165bc397be
commit
32e85668b8
@ -551,6 +551,7 @@ proc_encrypted (CTX c, PACKET *pkt)
|
|||||||
int algo;
|
int algo;
|
||||||
STRING2KEY s2kbuf;
|
STRING2KEY s2kbuf;
|
||||||
STRING2KEY *s2k = NULL;
|
STRING2KEY *s2k = NULL;
|
||||||
|
int canceled;
|
||||||
|
|
||||||
if (opt.override_session_key)
|
if (opt.override_session_key)
|
||||||
{
|
{
|
||||||
@ -591,12 +592,16 @@ proc_encrypted (CTX c, PACKET *pkt)
|
|||||||
log_info (_("assuming %s encrypted data\n"), "IDEA");
|
log_info (_("assuming %s encrypted data\n"), "IDEA");
|
||||||
}
|
}
|
||||||
|
|
||||||
c->dek = passphrase_to_dek ( NULL, 0, algo, s2k, 3, NULL, NULL );
|
c->dek = passphrase_to_dek ( NULL, 0, algo, s2k, 3, NULL, &canceled);
|
||||||
if (c->dek)
|
if (c->dek)
|
||||||
c->dek->algo_info_printed = 1;
|
c->dek->algo_info_printed = 1;
|
||||||
|
else if (canceled)
|
||||||
|
result = gpg_error (GPG_ERR_CANCELED);
|
||||||
|
else
|
||||||
|
result = gpg_error (GPG_ERR_INV_PASSPHRASE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( !c->dek )
|
else if (!c->dek)
|
||||||
result = G10ERR_NO_SECKEY;
|
result = G10ERR_NO_SECKEY;
|
||||||
|
|
||||||
if (!result)
|
if (!result)
|
||||||
@ -615,7 +620,7 @@ proc_encrypted (CTX c, PACKET *pkt)
|
|||||||
else if (!opt.no_mdc_warn)
|
else if (!opt.no_mdc_warn)
|
||||||
log_info (_("WARNING: message was not integrity protected\n"));
|
log_info (_("WARNING: message was not integrity protected\n"));
|
||||||
}
|
}
|
||||||
else if (result == G10ERR_BAD_SIGN)
|
else if (gpg_err_code (result) == G10ERR_BAD_SIGN)
|
||||||
{
|
{
|
||||||
glo_ctrl.lasterr = result;
|
glo_ctrl.lasterr = result;
|
||||||
log_error (_("WARNING: encrypted message has been manipulated!\n"));
|
log_error (_("WARNING: encrypted message has been manipulated!\n"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user