Fix inappropriate uses of atol()
Peter Eisentraut <peter@eisentraut.org>
Fix inappropriate uses of atol() Some code using atol() would not work correctly if sizeof(long)==4: - src/bin/pg_basebackup/pg_basebackup.c: Would miscount size of a tablespace over 2 TB. - src/bin/pg_basebackup/streamutil.c: Would truncate a timeline ID beyond INT32_MAX. - src/bin/pg_rewind/libpq_source.c: Would miscount size of files larger than 2 GB (but this currently cannot happen). Replace these with atoll(). In one case, the use of atol() did not result in incorrect behavior but seems inconsistent with related code: - src/interfaces/ecpg/ecpglib/execute.c: Gratuitous, since it processes a value from pg_type.typlen, which is int16. Replace this with atoi(). Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> Discussion: https://www.postgresql.org/message-id/flat/a52738ad-06bc-4d45-b59f-b38a8a89de49%40eisentraut.org
Files
| Path | Change | +/− |
|---|---|---|
| src/bin/pg_basebackup/pg_basebackup.c | modified | +1 −1 |
| src/bin/pg_basebackup/streamutil.c | modified | +1 −1 |
| src/bin/pg_rewind/libpq_source.c | modified | +1 −1 |
| src/interfaces/ecpg/ecpglib/execute.c | modified | +1 −1 |
Discussion
- Fix inappropriate uses of atol() 6 messages · 2024-08-03 → 2024-08-10