From 60963d98cfd8e60f88ee43c2d992f6dd3bbbd74c Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 18 Jan 2023 18:04:50 +0100 Subject: gpg: Detect already compressed data also when using a pipe. * common/iobuf.c (file_filter_ctx_t): Add fields for the peek feature. (file_filter): Implement peeking. (iobuf_ioctl): Add new IOBUF_IOCTL_PEEK. * common/iobuf.h (IOBUF_IOCTL_PEEK, IOBUFCTRL_PEEK): New. * common/miscellaneous.c (is_file_compressed): Rewrite. Detect PDF. * g10/encrypt.c (encrypt_simple): Peek before detecting compression. (encrypt_crypt): Ditto. * g10/sign.c (sign_file): Also detect already compressed data. * g10/options.h (opt): Add explicit_compress_option. * g10/gpg.c (main): Set opt.explicit_compress_option for -z. -- Note that this patch also introduces a compression check for signing which was never done in the past. GnuPG-bug-id: 6332 --- g10/gpg.c | 1 + 1 file changed, 1 insertion(+) (limited to 'g10/gpg.c') diff --git a/g10/gpg.c b/g10/gpg.c index 68c0454ee..de40d3828 100644 --- a/g10/gpg.c +++ b/g10/gpg.c @@ -3203,6 +3203,7 @@ main (int argc, char **argv) case oCompress: /* this is the -z command line option */ opt.compress_level = opt.bz2_compress_level = pargs.r.ret_int; + opt.explicit_compress_option = 1; break; case oCompressLevel: opt.compress_level = pargs.r.ret_int; break; case oBZ2CompressLevel: opt.bz2_compress_level = pargs.r.ret_int; break; -- cgit v1.2.3