gpg: Do not allow creation of user ids larger than our parser allows.
authorWerner Koch <wk@gnupg.org>
Tue, 21 May 2019 14:25:56 +0000 (16:25 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 21 May 2019 14:25:56 +0000 (16:25 +0200)
commit156788a43c20e38cd52f4f725395aff2c72142ff
treed5a2f0a0b9eb9971b5d19105f647ea224a16b120
parent126caa34bbdb36f40514643b9d6f5ead3240c735
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 <wk@gnupg.org>
g10/build-packet.c
g10/keygen.c
g10/packet.h
g10/parse-packet.c