postgresql/contrib/pgcrypto
Michael Paquier d7ecba937b pgcrypto: Detect errors with EVP calls from OpenSSL
The following routines are called within pgcrypto when handling digests
but there were no checks for failures:
- EVP_MD_CTX_size (can fail with -1 as of 3.0.0)
- EVP_MD_CTX_block_size (can fail with -1 as of 3.0.0)
- EVP_DigestInit_ex
- EVP_DigestUpdate
- EVP_DigestFinal_ex

A set of elog(ERROR) is added by this commit to detect such failures,
that should never happen except in the event of a processing failure
internal to OpenSSL.

Note that it would be possible to use ERR_reason_error_string() to get
more context about such errors, but these refer mainly to the internals
of OpenSSL, so it is not really obvious how useful that would be.  This
is left out for simplicity.

Per report from Coverity.  Thanks to Tom Lane for the discussion.

Backpatch-through: 9.5
2020-12-08 15:22:43 +09:00
..
expected Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:58:59 +09:00
sql Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:58:59 +09:00
.gitignore Support SCRAM-SHA-256 authentication (RFC 5802 and 7677). 2017-03-07 14:25:40 +02:00
Makefile Import changes from IMath versions (1.3, 1.29]. 2019-02-16 13:12:28 -08:00
blf.c Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
blf.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
crypt-blowfish.c Get rid of trailing semicolons in C macro definitions. 2020-05-01 17:28:00 -04:00
crypt-des.c Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
crypt-gensalt.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
crypt-md5.c Add missing error check in pgcrypto/crypt-md5.c. 2020-10-16 11:59:31 -04:00
imath.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
imath.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
internal-sha2.c Refactor SHA2 functions and move them to src/common/. 2017-03-07 14:23:49 +02:00
internal.c Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
mbuf.c Fix typos in comments. 2017-02-06 11:33:58 +02:00
mbuf.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
md5.c Resolve one unconstify use 2019-02-14 17:00:25 +01:00
md5.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
openssl.c pgcrypto: Detect errors with EVP calls from OpenSSL 2020-12-08 15:22:43 +09:00
pgcrypto--1.0--1.1.sql Add gen_random_uuid() to contrib/pgcrypto. 2014-01-17 16:52:06 -05:00
pgcrypto--1.1--1.2.sql Add functions for dealing with PGP armor header lines to pgcrypto. 2014-10-01 16:03:39 +03:00
pgcrypto--1.2--1.3.sql Update pgcrypto extension for parallel query. 2016-06-09 17:18:14 -04:00
pgcrypto--1.3.sql Minor fixes in contrib installation scripts. 2016-06-14 10:47:06 -04:00
pgcrypto--unpackaged--1.0.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
pgcrypto.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
pgcrypto.control Update pgcrypto extension for parallel query. 2016-06-09 17:18:14 -04:00
pgcrypto.h Remove unnecessary prototypes 2016-09-30 14:04:16 -04:00
pgp-armor.c Rename base64 routines to avoid conflict with Solaris built-in functions. 2018-02-28 18:33:45 -05:00
pgp-cfb.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-compress.c Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:58:59 +09:00
pgp-decrypt.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pgp-encrypt.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
pgp-info.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-mpi-internal.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
pgp-mpi-openssl.c Fix typos in comments. 2017-02-06 11:33:58 +02:00
pgp-mpi.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-pgsql.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
pgp-pubdec.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-pubenc.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
pgp-pubkey.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-s2k.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
pgp.c pgcrypto: support changing S2K iteration count 2016-03-09 14:31:07 -03:00
pgp.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
px-crypt.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
px-crypt.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
px-hmac.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
px.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
px.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rijndael.c Fix a boatload of typos in C comments. 2018-04-01 15:01:28 -04:00
rijndael.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rijndael.tbl Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
sha1.c Initial pgindent run with pg_bsd_indent version 2.0. 2017-06-21 14:39:04 -04:00
sha1.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00