E.32. Выпуск 14.17

Дата выпуска: 2025-02-20

В этот выпуск вошло несколько исправлений, внесённых после версии 14.16. За информацией о нововведениях версии 14 обратитесь к Разделу E.49.

E.32.1. Миграция на версию 14.17

Если используется версия 14.X, выгрузка/восстановление базы не требуется.

Если вы обновляете сервер с более ранней версии, чем 14.14, см. также Раздел E.35.

E.32.2. Изменения

  • Улучшение поведения функций с обработкой экранирования libpq (Андрес Фройнд, Том Лейн) § § §

    Изменения, внесённые для CVE-2025-1094, имели одно серьёзное упущение: функции PQescapeLiteral() и PQescapeIdentifier() не учитывали параметр длины строк и вместо этого всегда выполняли чтение до завершающего нулевого символа входной строки. Это приводило к включению нежелательного текста в вывод при усечении строки вызывающим кодом через параметр длины, а в некоторых особенно неудачных случаях могло вызывать сбои из-за считывания за пределами памяти.

    Кроме того, все функции с обработкой экранирования были изменены так, чтобы при обнаружении недопустимой кодировки недопустимая последовательность заменялась только на первый байт предполагаемого символа, а не на весь символ. Это снижает риск возникновения проблем, если вызывающее приложение выполняет дополнительную обработку строки с экранированием.

  • Устранение сбоя, связанного с триггерами секционированных таблиц, использующими переходные таблицы (Кётаро Хоригути) §

    При наличии как триггера AFTER UPDATE, так и AFTER DELETE необходимость в переходных таблицах определялась неправильно, что приводило к сбою во время изменений, затрагивающих разные секции.

E.32. Release 14.17

Release date: 2025-02-20

This release contains a few fixes from 14.16. For information about new features in major release 14, see Section E.49.

E.32.1. Migration to Version 14.17

A dump/restore is not required for those running 14.X.

However, if you are upgrading from a version earlier than 14.14, see Section E.35.

E.32.2. Changes

  • Improve behavior of libpq's quoting functions (Andres Freund, Tom Lane) § § §

    The changes made for CVE-2025-1094 had one serious oversight: PQescapeLiteral() and PQescapeIdentifier() failed to honor their string length parameter, instead always reading to the input string's trailing null. This resulted in including unwanted text in the output, if the caller intended to truncate the string via the length parameter. With very bad luck it could cause a crash due to reading off the end of memory.

    In addition, modify all these quoting functions so that when invalid encoding is detected, an invalid sequence is substituted for just the first byte of the presumed character, not all of it. This reduces the risk of problems if a calling application performs additional processing on the quoted string.

  • Fix crash involving triggers on partitioned tables that make use of transition tables (Kyotaro Horiguchi) §

    If there are both AFTER UPDATE and AFTER DELETE triggers, the need for transition tables was determined incorrectly, leading to a crash during cross-partition updates.

FAQ