diff options
author | Werner Koch <[email protected]> | 2019-05-21 14:25:56 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-05-21 14:28:11 +0000 |
commit | d32963eeb33fd3053d40a4e7071fb0e8b28a8651 (patch) | |
tree | feeb0a286b2f1ea737fbfc56a5493bfc5179f708 /g10/parse-packet.c | |
parent | agent: For SSH key, don't put NUL-byte at the end. (diff) | |
download | gnupg-d32963eeb33fd3053d40a4e7071fb0e8b28a8651.tar.gz gnupg-d32963eeb33fd3053d40a4e7071fb0e8b28a8651.zip |
gpg: Do not allow creation of user ids larger than our parser allows.
* g10/parse-packet.c: Move max packet lengths constants to ...
* g10/packet.h: ... here.
* g10/build-packet.c (do_user_id): Return an error if too data is too
large.
* g10/keygen.c (write_uid): Return an error for too large data.
--
This can lead to keyring corruption becuase we expect that our parser
is abale to parse packts created by us. Test case is
gpg --batch --passphrase 'abc' -v \
--quick-gen-key $(yes 'a'| head -4000|tr -d '\n')
GnuPG-bug-id: 4532
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/parse-packet.c')
-rw-r--r-- | g10/parse-packet.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 3aa11a45f..2d6ec9205 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -38,12 +38,6 @@ #include "../common/mbox-util.h" -/* Maximum length of packets to avoid excessive memory allocation. */ -#define MAX_KEY_PACKET_LENGTH (256 * 1024) -#define MAX_UID_PACKET_LENGTH ( 2 * 1024) -#define MAX_COMMENT_PACKET_LENGTH ( 64 * 1024) -#define MAX_ATTR_PACKET_LENGTH ( 16 * 1024*1024) - static int mpi_print_mode; static int list_mode; static estream_t listfp; |