postgresql/contrib/pgcrypto
Michael Paquier dfd8bf2b92 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:38 +09:00
..
expected Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:58:54 +09:00
sql Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:58:54 +09:00
.gitignore
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
crypt-md5.c Add missing error check in pgcrypto/crypt-md5.c. 2020-10-16 11:59:25 -04:00
imath.c Update copyrights for 2020 2020-01-01 12:21:45 -05:00
imath.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
internal-sha2.c
internal.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
Makefile Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
mbuf.c Remove useless "return;" lines 2019-11-28 16:48:37 -03:00
mbuf.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
md5.c
md5.h
openssl.c pgcrypto: Detect errors with EVP calls from OpenSSL 2020-12-08 15:22:38 +09:00
pgcrypto--1.0--1.1.sql
pgcrypto--1.1--1.2.sql
pgcrypto--1.2--1.3.sql
pgcrypto--1.3.sql
pgcrypto.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgcrypto.control Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
pgcrypto.h
pgp-armor.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-cfb.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-compress.c Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:58:54 +09:00
pgp-decrypt.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-encrypt.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-info.c Dial back -Wimplicit-fallthrough to level 3 2020-05-13 15:31:14 -04:00
pgp-mpi-internal.c Clear some style deviations. 2020-05-21 08:31:16 -07:00
pgp-mpi-openssl.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-mpi.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-pgsql.c Introduce macros for typalign and typstorage constants. 2020-03-04 10:34:25 -05:00
pgp-pubdec.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-pubenc.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-pubkey.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-s2k.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp.h Fix inconsistencies and typos in the tree, take 10 2019-08-13 13:53:41 +09:00
px-crypt.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
px-crypt.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
px-hmac.c
px.c
px.h Fix inconsistencies and typos in the tree, take 9 2019-08-05 12:14:58 +09:00
rijndael.c
rijndael.h
rijndael.tbl
sha1.c Fix inconsistencies and typos in the tree, take 9 2019-08-05 12:14:58 +09:00
sha1.h