postgresql/src/include
Nathan Bossart 0a27c3d0f7 Fix various overflow hazards in date and timestamp functions.
This commit makes use of the overflow-aware routines in int.h to
fix a variety of reported overflow bugs in the date and timestamp
code.  It seems unlikely that this fixes all such bugs in this
area, but since the problems seem limited to cases that are far
beyond any realistic usage, I'm not going to worry too much.  Note
that for one bug, I've chosen to simply add a comment about the
overflow hazard because fixing it would require quite a bit of code
restructuring that doesn't seem worth the risk.

Since this is a bug fix, it could be back-patched, but given the
risk of conflicts with the new routines in int.h and the overall
risk/reward ratio of this patch, I've opted not to do so for now.

Fixes bug #18585 (except for the one case that's just commented).

Reported-by: Alexander Lakhin
Author: Matthew Kim, Nathan Bossart
Reviewed-by: Joseph Koshakow, Jian He
Discussion: https://postgr.es/m/31ad2cd1-db94-bdb3-f91a-65ffdb4bef95%40gmail.com
Discussion: https://postgr.es/m/18585-db646741dd649abd%40postgresql.org
2024-12-09 13:47:23 -06:00
..
access Remove remants of "snapshot too old" 2024-12-09 18:13:03 +02:00
archive Add macro for customizing an archiving WARNING message. 2024-03-04 15:41:42 -06:00
backup Align blocks in incremental backups to BLCKSZ 2024-04-05 16:30:01 +02:00
bootstrap Update copyright for 2024 2024-01-03 20:49:05 -05:00
catalog Ensure stored generated columns must be published when required. 2024-12-04 09:45:18 +05:30
commands Ensure stored generated columns must be published when required. 2024-12-04 09:45:18 +05:30
common Fix various overflow hazards in date and timestamp functions. 2024-12-09 13:47:23 -06:00
datatype Update copyright for 2024 2024-01-03 20:49:05 -05:00
executor Simplify executor's determination of whether to use parallelism. 2024-12-09 14:38:19 -05:00
fe_utils pg_verifybackup: Verify tar-format backups. 2024-09-27 08:40:24 -04:00
foreign Clean up more indent breakage from 6377e12a5. 2024-04-16 13:00:40 -04:00
jit jit: Remove obsolete LLVM version guard. 2024-11-11 12:07:24 +13:00
lib Revert pg_wal_replay_wait() stored procedure 2024-11-04 22:47:57 +02:00
libpq Deprecate MD5 passwords. 2024-12-02 13:30:07 -06:00
mb Inline basic UTF-8 functions. 2024-03-20 09:40:57 -07:00
nodes Add pg_constraint rows for not-null constraints 2024-11-08 13:28:48 +01:00
optimizer Reordering DISTINCT keys to match input path's pathkeys 2024-11-26 09:25:18 +09:00
parser Track more precisely query locations for nested statements 2024-10-24 09:29:54 +09:00
partitioning Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands 2024-08-24 18:48:48 +03:00
pch Update copyright for 2024 2024-01-03 20:49:05 -05:00
port Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
portability Fix datatypes in comments in instr_time.h 2024-08-06 22:15:55 +03:00
postmaster Provide a better error message for misplaced dispatch options. 2024-12-04 15:04:15 -06:00
regex Avoid assertion due to disconnected NFA sub-graphs in regex parsing. 2024-11-15 18:23:38 -05:00
replication Fix memory leak in pgoutput with publication list cache 2024-12-09 16:41:46 +09:00
rewrite Support MERGE into updatable views. 2024-02-29 15:56:59 +00:00
snowball Update copyright for 2024 2024-01-03 20:49:05 -05:00
statistics Add functions pg_restore_relation_stats(), pg_restore_attribute_stats(). 2024-10-24 12:08:00 -07:00
storage Remove remants of "snapshot too old" 2024-12-09 18:13:03 +02:00
tcop Simplify executor's determination of whether to use parallelism. 2024-12-09 14:38:19 -05:00
tsearch Constify fields and parameters in spell.c 2024-08-06 23:04:51 +03:00
utils Simplify executor's determination of whether to use parallelism. 2024-12-09 14:38:19 -05:00
.gitignore Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
c.h Fix header inclusion order in c.h. 2024-12-05 14:31:39 +13:00
fmgr.h Remove _PG_fini() 2024-08-21 07:24:03 +09:00
funcapi.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
getopt_long.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
Makefile Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
meson.build Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
miscadmin.h Replace postmaster.c's own backend type codes with BackendType 2024-11-14 16:06:16 +02:00
pg_config.h.in Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
pg_config_manual.h Add prefetching support on macOS 2024-08-28 07:28:27 +02:00
pg_getopt.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_trace.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
pgstat.h Add two attributes to pg_stat_database for parallel workers activity 2024-11-11 10:40:48 +09:00
pgtar.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
pgtime.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
port.h More use of getpwuid_r() directly 2024-09-02 09:04:30 +02:00
postgres.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
postgres_ext.h Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
postgres_fe.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
varatt.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
windowapi.h Update copyright for 2024 2024-01-03 20:49:05 -05:00