diff --git a/g10/decrypt-data.c b/g10/decrypt-data.c index 9c6ae73bf..03d38c9c9 100644 --- a/g10/decrypt-data.c +++ b/g10/decrypt-data.c @@ -130,7 +130,12 @@ decrypt_data (ctrl_t ctrl, void *procctx, PKT_encrypted *ed, DEK *dek) log_fatal ("unsupported blocksize %u\n", blocksize ); nprefix = blocksize; if ( ed->len && ed->len < (nprefix+2) ) - BUG(); + { + /* An invalid message. We can't check that during parsing + because we may not know the used cipher then. */ + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } if ( ed->mdc_method ) {