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
blf.c
blf.h
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
Makefile Import changes from IMath versions (1.3, 1.29]. 2019-02-16 13:12:28 -08: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
pgcrypto--1.1--1.2.sql
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
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
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
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
pgp-pgsql.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
pgp-pubdec.c
pgp-pubenc.c Remove configure switch --disable-strong-random 2019-01-01 20:05:51 +09:00
pgp-pubkey.c
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
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
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