mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-02 12:01:32 +01:00
gpg: Fix using --decrypt along with --use-embedded-filename.
* g10/options.h (opt): Add flags.dummy_outfile. * g10/decrypt.c (decrypt_message): Set this global flag instead of the fucntion local flag. * g10/plaintext.c (get_output_file): Ignore opt.output if that was used as a dummy option aslong with --use-embedded-filename. -- The problem here was that an explicit specified --decrypt, as meanwhile suggested, did not work with that dangerous --use-embedded-filename. In contrast it worked when gpg decrypted as a side-effect of parsing the data. GnuPG-bug-id: 4500 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
7e5847da0f
commit
386bacd974
@ -3023,7 +3023,8 @@ to display the message. This option overrides @option{--set-filename}.
|
|||||||
@itemx --no-use-embedded-filename
|
@itemx --no-use-embedded-filename
|
||||||
@opindex use-embedded-filename
|
@opindex use-embedded-filename
|
||||||
Try to create a file with a name as embedded in the data. This can be
|
Try to create a file with a name as embedded in the data. This can be
|
||||||
a dangerous option as it enables overwriting files. Defaults to no.
|
a dangerous option as it enables overwriting files. Defaults to no.
|
||||||
|
Note that the option @option{--output} overrides this option.
|
||||||
|
|
||||||
@item --cipher-algo @var{name}
|
@item --cipher-algo @var{name}
|
||||||
@opindex cipher-algo
|
@opindex cipher-algo
|
||||||
|
@ -48,7 +48,6 @@ decrypt_message (ctrl_t ctrl, const char *filename)
|
|||||||
armor_filter_context_t *afx = NULL;
|
armor_filter_context_t *afx = NULL;
|
||||||
progress_filter_context_t *pfx;
|
progress_filter_context_t *pfx;
|
||||||
int rc;
|
int rc;
|
||||||
int no_out = 0;
|
|
||||||
|
|
||||||
pfx = new_progress_context ();
|
pfx = new_progress_context ();
|
||||||
|
|
||||||
@ -82,11 +81,13 @@ decrypt_message (ctrl_t ctrl, const char *filename)
|
|||||||
|
|
||||||
if (!opt.outfile)
|
if (!opt.outfile)
|
||||||
{
|
{
|
||||||
no_out = 1;
|
|
||||||
opt.outfile = "-";
|
opt.outfile = "-";
|
||||||
|
opt.flags.dummy_outfile = 1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
opt.flags.dummy_outfile = 0;
|
||||||
rc = proc_encryption_packets (ctrl, NULL, fp );
|
rc = proc_encryption_packets (ctrl, NULL, fp );
|
||||||
if (no_out)
|
if (opt.flags.dummy_outfile)
|
||||||
opt.outfile = NULL;
|
opt.outfile = NULL;
|
||||||
|
|
||||||
iobuf_close (fp);
|
iobuf_close (fp);
|
||||||
|
@ -249,6 +249,8 @@ struct
|
|||||||
unsigned int disable_signer_uid:1;
|
unsigned int disable_signer_uid:1;
|
||||||
/* Flag to enable experimental features from RFC4880bis. */
|
/* Flag to enable experimental features from RFC4880bis. */
|
||||||
unsigned int rfc4880bis:1;
|
unsigned int rfc4880bis:1;
|
||||||
|
/* Hack: --output is not given but OUTFILE was temporary set to "-". */
|
||||||
|
unsigned int dummy_outfile:1;
|
||||||
} flags;
|
} flags;
|
||||||
|
|
||||||
/* Linked list of ways to find a key if the key isn't on the local
|
/* Linked list of ways to find a key if the key isn't on the local
|
||||||
|
@ -70,7 +70,8 @@ get_output_file (const byte *embedded_name, int embedded_namelen,
|
|||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (opt.outfile)
|
else if (opt.outfile
|
||||||
|
&& !(opt.flags.use_embedded_filename && opt.flags.dummy_outfile))
|
||||||
{
|
{
|
||||||
fname = xtrystrdup (opt.outfile);
|
fname = xtrystrdup (opt.outfile);
|
||||||
if (!fname)
|
if (!fname)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user