pgsql: Fix out-of-bound memory access for interval -> char conversion

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема pgsql: Fix out-of-bound memory access for interval -> char conversion
Дата
Msg-id E1lVmNK-0002gT-NK@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix out-of-bound memory access for interval -> char conversion

Using Roman numbers (via "RM" or "rm") for a conversion to calculate a
number of months has never considered the case of negative numbers,
where a conversion could easily cause out-of-bound memory accesses.  The
conversions in themselves were not completely consistent either, as
specifying 12 would result in NULL, but it should mean XII.

This commit reworks the conversion calculation to have a more
consistent behavior:
- If the number of months and years is 0, return NULL.
- If the number of months is positive, return the exact month number.
- If the number of months is negative, do a backward calculation, with
-1 meaning December, -2 November, etc.

Reported-by: Theodor Arsenij Larionov-Trichkin
Author: Julien Rouhaud
Discussion: https://postgr.es/m/16953-f255a18f8c51f1d5@postgresql.org
backpatch-through: 9.6

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/be79debd9688da516f49ba9b825ee2e784d1fab0

Modified Files
--------------
src/backend/utils/adt/formatting.c      | 63 +++++++++++++++++++++++++++------
src/test/regress/expected/timestamp.out | 36 +++++++++++++++++++
src/test/regress/sql/timestamp.sql      |  6 ++++
3 files changed, 95 insertions(+), 10 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: "tsunakawa.takay@fujitsu.com"
Дата:
Сообщение: RE: pgsql: Add a new GUC and a reloption to enable inserts in parallel-mode
Следующее
От: Amit Kapila
Дата:
Сообщение: pgsql: Allocate access strategy in parallel VACUUM workers.