<feed xmlns='http://www.w3.org/2005/Atom'>
<title>postgresql.git, branch REL_11_STABLE</title>
<subtitle>This is the main PostgreSQL git repository.</subtitle>
<id>http://git.postgresql.org/cgit/postgresql.git/atom?h=REL_11_STABLE</id>
<link rel='self' href='http://git.postgresql.org/cgit/postgresql.git/atom?h=REL_11_STABLE'/>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/'/>
<updated>2024-11-27T03:04:22Z</updated>
<entry>
<title>If a C23 compiler is detected, try asking for C17.</title>
<updated>2024-11-27T03:04:22Z</updated>
<author>
<name>Thomas Munro</name>
</author>
<published>2024-11-27T02:43:18Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=170e416034ec0231d9e9238f2577eeb76ca8d181'/>
<id>urn:sha1:170e416034ec0231d9e9238f2577eeb76ca8d181</id>
<content type='text'>
Branches before 16 can't be compiled with a C23 compiler (see
deprecation warnings silenced by commit f9a56e72, and non-back-patchable
changes made in 16 by commit 1c27d16e).  Test __STDC_VERSION__, and if
it's above C17 then try appending -std=gnu17.  The test is done with the
user's CFLAGS, so an acceptable language version can also be configured
manually that way.

This is done in branches 15 and older, back to 9.2, per policy of
keeping them buildable with modern tools.

Discussion: https://postgr.es/m/87o72eo9iu.fsf%40gentoo.org
</content>
</entry>
<entry>
<title>Assume that &lt;stdbool.h&gt; conforms to the C standard.</title>
<updated>2024-11-25T07:52:17Z</updated>
<author>
<name>Thomas Munro</name>
</author>
<published>2024-11-25T00:11:28Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=0305dd3adef24b753201a5a72c8c43b38aee5cbc'/>
<id>urn:sha1:0305dd3adef24b753201a5a72c8c43b38aee5cbc</id>
<content type='text'>
Previously we checked "for &lt;stdbool.h&gt; that conforms to C99" using
autoconf's AC_HEADER_STDBOOL macro.  We've required C99 since PostgreSQL
12, so the test was redundant, and under C23 it was broken: autoconf
2.69's implementation doesn't understand C23's new empty header (the
macros it's looking for went away, replaced by language keywords).
Later autoconf versions fixed that, but let's just remove the
anachronistic test.

HAVE_STDBOOL_H and HAVE__BOOL will no longer be defined, but they
weren't directly tested in core or likely extensions (except in 11, see
below).  PG_USE_STDBOOL (or USE_STDBOOL in 11 and 12) is still defined
when sizeof(bool) is 1, which should be true on all modern systems.
Otherwise we define our own bool type and values of size 1, which would
fail to compile under C23 as revealed by the broken test.  (We'll
probably clean that dead code up in master, but here we want a minimal
back-patchable change.)

This came to our attention when GCC 15 recently started using using C23
by default and failed to compile the replacement code, as reported by
Sam James and build farm animal alligator.

Back-patch to all supported releases, and then two older versions that
also know about &lt;stdbool.h&gt;, per the recently-out-of-support policy[1].
12 requires C99 so it's much like the supported releases, but 11 only
assumes C89 so it now uses AC_CHECK_HEADERS instead of the overly picky
AC_HEADER_STDBOOL.  (I could find no discussion of which historical
systems had &lt;stdbool.h&gt; but failed the conformance test; if they ever
existed, they surely aren't relevant to that policy's goals.)

[1] https://wiki.postgresql.org/wiki/Committing_checklist#Policies

Reported-by: Sam James &lt;sam@gentoo.org&gt;
Reviewed-by: Peter Eisentraut &lt;peter@eisentraut.org&gt; (master version)
Reviewed-by: Tom Lane &lt;tgl@sss.pgh.pa.us&gt; (approach)
Discussion: https://www.postgresql.org/message-id/flat/87o72eo9iu.fsf%40gentoo.org
</content>
</entry>
<entry>
<title>Remove redundant perl version checks</title>
<updated>2024-06-26T11:25:26Z</updated>
<author>
<name>Andrew Dunstan</name>
</author>
<published>2024-06-26T11:01:47Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=e1541d518821e88344790c2d046e4f9d770fbf66'/>
<id>urn:sha1:e1541d518821e88344790c2d046e4f9d770fbf66</id>
<content type='text'>
Commit 4c1532763a removed some redundant uses of 'use 5.008001;' in perl
scripts, including in plperl's plc_perlboot.pl. Because it made other
changes it wasn't backpatched. However, now this is causing a failure on
back branches when built with bleeding edge perl. Therefore, backpatch
just that part of it which removed those uses, from 15 all the way down
to 9.2, which is the earliest version currently built in the buildfarm.

per report from Alexander Lakhin

Discussion: https://postgr.es/m/4cc2ee93-e03c-8e13-61ed-412e7e6ff19d@gmail.com
</content>
</entry>
<entry>
<title>Stamp 11.22.</title>
<updated>2023-11-06T22:13:58Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2023-11-06T22:13:58Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=fd851f9e4a13d81cccc4ac5d6059d732c7518111'/>
<id>urn:sha1:fd851f9e4a13d81cccc4ac5d6059d732c7518111</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Last-minute updates for release notes.</title>
<updated>2023-11-06T18:26:33Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2023-11-06T18:26:33Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=3dbb3dd2d641af0da92e0a25b490b5bc38490e58'/>
<id>urn:sha1:3dbb3dd2d641af0da92e0a25b490b5bc38490e58</id>
<content type='text'>
Security: CVE-2023-5868, CVE-2023-5869, CVE-2023-5870
</content>
</entry>
<entry>
<title>Detect integer overflow while computing new array dimensions.</title>
<updated>2023-11-06T15:56:43Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2023-11-06T15:56:43Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=c48008f599fd0e3bca2923ff5b40b559ae1e4e2e'/>
<id>urn:sha1:c48008f599fd0e3bca2923ff5b40b559ae1e4e2e</id>
<content type='text'>
array_set_element() and related functions allow an array to be
enlarged by assigning to subscripts outside the current array bounds.
While these places were careful to check that the new bounds are
allowable, they neglected to consider the risk of integer overflow
in computing the new bounds.  In edge cases, we could compute new
bounds that are invalid but get past the subsequent checks,
allowing bad things to happen.  Memory stomps that are potentially
exploitable for arbitrary code execution are possible, and so is
disclosure of server memory.

To fix, perform the hazardous computations using overflow-detecting
arithmetic routines, which fortunately exist in all still-supported
branches.

The test cases added for this generate (after patching) errors that
mention the value of MaxArraySize, which is platform-dependent.
Rather than introduce multiple expected-files, use psql's VERBOSITY
parameter to suppress the printing of the message text.  v11 psql
lacks that parameter, so omit the tests in that branch.

Our thanks to Pedro Gallegos for reporting this problem.

Security: CVE-2023-5869
</content>
</entry>
<entry>
<title>Compute aggregate argument types correctly in transformAggregateCall().</title>
<updated>2023-11-06T15:38:00Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2023-11-06T15:38:00Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=8c6633f4deb6ace445fc3d72d54585c373187d2d'/>
<id>urn:sha1:8c6633f4deb6ace445fc3d72d54585c373187d2d</id>
<content type='text'>
transformAggregateCall() captures the datatypes of the aggregate's
arguments immediately to construct the Aggref.aggargtypes list.
This seems reasonable because the arguments have already been
transformed --- but there is an edge case where they haven't been.
Specifically, if we have an unknown-type literal in an ANY argument
position, nothing will have been done with it earlier.  But if we
also have DISTINCT, then addTargetToGroupList() converts the literal
to "text" type, resulting in the aggargtypes list not matching the
actual runtime type of the argument.  The end result is that the
aggregate tries to interpret a "text" value as being of type
"unknown", that is a zero-terminated C string.  If the text value
contains no zero bytes, this could result in disclosure of server
memory following the text literal value.

To fix, move the collection of the aggargtypes list to the end
of transformAggregateCall(), after DISTINCT has been handled.
This requires slightly more code, but not a great deal.

Our thanks to Jingzhou Fu for reporting this problem.

Security: CVE-2023-5868
</content>
</entry>
<entry>
<title>Set GUC "is_superuser" in all processes that set AuthenticatedUserId.</title>
<updated>2023-11-06T14:14:18Z</updated>
<author>
<name>Noah Misch</name>
</author>
<published>2023-11-06T14:14:13Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=a27be40c1bc328f4bab324ccecd601909ec94ac9'/>
<id>urn:sha1:a27be40c1bc328f4bab324ccecd601909ec94ac9</id>
<content type='text'>
It was always false in single-user mode, in autovacuum workers, and in
background workers.  This had no specifically-identified security
consequences, but non-core code or future work might make it
security-relevant.  Back-patch to v11 (all supported versions).

Jelte Fennema-Nio.  Reported by Jelte Fennema-Nio.
</content>
</entry>
<entry>
<title>Ban role pg_signal_backend from more superuser backend types.</title>
<updated>2023-11-06T14:14:18Z</updated>
<author>
<name>Noah Misch</name>
</author>
<published>2023-11-06T14:14:13Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=e082734c8e78e6622a0422e612a870278721e83f'/>
<id>urn:sha1:e082734c8e78e6622a0422e612a870278721e83f</id>
<content type='text'>
Documentation says it cannot signal "a backend owned by a superuser".
On the contrary, it could signal background workers, including the
logical replication launcher.  It could signal autovacuum workers and
the autovacuum launcher.  Block all that.  Signaling autovacuum workers
and those two launchers doesn't stall progress beyond what one could
achieve other ways.  If a cluster uses a non-core extension with a
background worker that does not auto-restart, this could create a denial
of service with respect to that background worker.  A background worker
with bugs in its code for responding to terminations or cancellations
could experience those bugs at a time the pg_signal_backend member
chooses.  Back-patch to v11 (all supported versions).

Reviewed by Jelte Fennema-Nio.  Reported by Hemanth Sandrana and
Mahendrakar Srinivasarao.

Security: CVE-2023-5870
</content>
</entry>
<entry>
<title>Translation updates</title>
<updated>2023-11-06T12:29:04Z</updated>
<author>
<name>Peter Eisentraut</name>
</author>
<published>2023-11-06T12:29:04Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=b29af71cd9a32b11e9e41f66c3068070a01e544d'/>
<id>urn:sha1:b29af71cd9a32b11e9e41f66c3068070a01e544d</id>
<content type='text'>
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 8174b9117de39641851e8c8f8f8cd300487a6f70
</content>
</entry>
</feed>
