postgresql/contrib/pgcrypto
Tom Lane f2087e26eb Clean up assorted failures under clang's -fsanitize=undefined checks.
Most of these are cases where we could call memcpy() or other libc
functions with a NULL pointer and a zero count, which is forbidden
by POSIX even though every production version of libc allows it.
We've fixed such things before in a piecemeal way, but apparently
never made an effort to try to get them all.  I don't claim that
this patch does so either, but it gets every failure I observe in
check-world, using clang 12.0.1 on current RHEL8.

numeric.c has a different issue that the sanitizer doesn't like:
"ln(-1.0)" will compute log10(0) and then try to assign the
resulting -Inf to an integer variable.  We don't actually use the
result in such a case, so there's no live bug.

Back-patch to all supported branches, with the idea that we might
start running a buildfarm member that tests this case.  This includes
back-patching c1132aae3 (Check the size in COPY_POINTER_FIELD),
which previously silenced some of these issues in copyfuncs.c.

Discussion: https://postgr.es/m/CALNJ-vT9r0DSsAOw9OXVJFxLENoVS_68kJ5x0p44atoYH+H4dg@mail.gmail.com
2022-03-03 18:13:24 -05:00
..
expected Add alternative output for OpenSSL 3 without legacy loaded 2021-09-25 11:27:28 +02:00
sql Fix corner case with 16kB-long decompression in pgcrypto, take 2 2020-07-27 15:59:03 +09:00
.gitignore Support SCRAM-SHA-256 authentication (RFC 5802 and 7677). 2017-03-07 14:25:40 +02:00
Makefile Support SCRAM-SHA-256 authentication (RFC 5802 and 7677). 2017-03-07 14:25:40 +02: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:01 -04:00
crypt-des.c Replace most usages of ntoh[ls] and hton[sl] with pg_bswap.h. 2017-10-01 15:36:14 -07: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:36 -04:00
imath.c Reformat imath.c macro to remove -Wmisleading-indentation warnings. 2021-12-12 19:12:00 -05:00
imath.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -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 of pgindent updates. 2017-06-21 15:19:25 -04:00
md5.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
md5.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
openssl.c Disable OpenSSL EVP digest padding in pgcrypto 2021-09-25 11:27:20 +02: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 Add some const decorations to prototypes 2017-11-10 13:38:57 -05: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:59:03 +09:00
pgp-decrypt.c Fix misc typos in comments. 2019-01-23 13:43:41 +02:00
pgp-encrypt.c Fix pgcrypto compilation with OpenSSL 1.1.0. 2016-12-12 11:14:44 +02:00
pgp-info.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-mpi-internal.c Fix typos in comments. 2017-02-06 11:33:58 +02: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 Fix generation of padding message before encrypting Elgamal in pgcrypto 2019-01-01 10:39:29 +09:00
pgp-pubkey.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pgp-s2k.c Replace PostmasterRandom() with a stronger source, second attempt. 2016-12-05 13:42:59 +02:00
pgp.c pgcrypto: support changing S2K iteration count 2016-03-09 14:31:07 -03:00
pgp.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
px-crypt.c Initial pgindent run with pg_bsd_indent version 2.0. 2017-06-21 14:39:04 -04:00
px-crypt.h Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
px-hmac.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
px.c Clean up assorted failures under clang's -fsanitize=undefined checks. 2022-03-03 18:13:24 -05: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