Preliminary release notes for 8.0.3, 7.4.8, 7.3.10.
This commit is contained in:
parent
f593dda030
commit
a5ed98ba5a
@ -1,10 +1,117 @@
|
||||
<!--
|
||||
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.333 2005/04/07 19:04:13 tgl Exp $
|
||||
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.334 2005/05/04 21:19:33 tgl Exp $
|
||||
-->
|
||||
|
||||
<appendix id="release">
|
||||
<title>Release Notes</title>
|
||||
|
||||
<sect1 id="release-8-0-3">
|
||||
<title>Release 8.0.3</title>
|
||||
|
||||
<note>
|
||||
<title>Release date</title>
|
||||
<simpara>2005-05-05</simpara>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 8.0.2, including several
|
||||
security-related issues.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to version 8.0.3</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 8.0.X. However,
|
||||
it is one possible way of handling two significant security problems
|
||||
that have been found in the initial contents of 8.0.X system
|
||||
catalogs. A dump/initdb/reload sequence using 8.0.3's initdb will
|
||||
automatically correct these problems.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The larger security problem is that the built-in character set encoding
|
||||
conversion functions can be invoked from SQL commands by unprivileged
|
||||
users, but the functions were not designed for such use and are not
|
||||
secure against malicious choices of arguments. The fix involves changing
|
||||
the declared parameter list of these functions so that they can no longer
|
||||
be invoked from SQL commands. (This does not affect their normal use
|
||||
by the encoding conversion machinery.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The lesser problem is that the <filename>contrib/tsearch2</> module
|
||||
creates several functions that are misdeclared to return
|
||||
<type>internal</> when they do not accept <type>internal</> arguments.
|
||||
This breaks type safety for all functions using <type>internal</>
|
||||
arguments.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is strongly recommended that all installations repair these errors,
|
||||
either by initdb or by following the manual repair procedure given
|
||||
below. The errors at least allow unprivileged database users to crash
|
||||
their server process, and may allow unprivileged users to gain the
|
||||
privileges of a database superuser.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you wish not to do an initdb, perform the same manual repair
|
||||
procedures shown in the <link linkend="release-7-4-8">7.4.8 release
|
||||
notes</link>.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>Change encoding function signature to prevent
|
||||
misuse</para></listitem>
|
||||
<listitem><para>Change <filename>contrib/tsearch2</> to avoid unsafe use of
|
||||
<type>INTERNAL</> function results</para></listitem>
|
||||
<listitem><para>Guard against incorrect second parameter to
|
||||
<function>record_out</></para></listitem>
|
||||
<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</> values</para>
|
||||
<para>
|
||||
The comparison code was wrong in the case where the
|
||||
<literal>--enable-integer-datetimes</> configuration switch had been used.
|
||||
NOTE: if you have an index on a <type>TIME WITH TIME ZONE</> column,
|
||||
it will need to be <command>REINDEX</>ed after installing this update, because
|
||||
the fix corrects the sort order of column values.
|
||||
</para></listitem>
|
||||
<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
|
||||
<type>TIME WITH TIME ZONE</> values</para></listitem>
|
||||
<listitem><para>Fix mis-display of negative fractional seconds in
|
||||
<type>INTERVAL</> values</para>
|
||||
<para>
|
||||
This error only occurred when the
|
||||
<literal>--enable-integer-datetimes</> configuration switch had been used.
|
||||
</para></listitem>
|
||||
<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</>
|
||||
correctly (Neil)</para></listitem>
|
||||
<listitem><para>Still more 64-bit fixes for
|
||||
<filename>contrib/intagg</></para></listitem>
|
||||
<listitem><para>Prevent incorrect optimization of functions returning
|
||||
<type>RECORD</></para></listitem>
|
||||
<listitem><para>Prevent crash on <literal>COALESCE(NULL,NULL)</></para></listitem>
|
||||
<listitem><para>Fix Borland makefile for libpq</para></listitem>
|
||||
<listitem><para>Fix <filename>contrib/btree_gist</> for <type>timetz</> type
|
||||
(Teodor)</para></listitem>
|
||||
<listitem><para>Make <command>pg_ctl</> check the PID found in
|
||||
<filename>postmaster.pid</> to see if it is still a live
|
||||
process</para></listitem>
|
||||
<listitem><para>Fix <command>pg_dump</>/<command>pg_restore</> problems caused
|
||||
by addition of dump timestamps</para></listitem>
|
||||
<listitem><para>Fix interaction between materializing holdable cursors and
|
||||
firing deferred triggers during transaction commit</para></listitem>
|
||||
<listitem><para>Fix memory leak in SQL functions returning pass-by-reference
|
||||
data types</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-8-0-2">
|
||||
<title>Release 8.0.2</title>
|
||||
|
||||
@ -2569,6 +2676,177 @@ typedefs (Michael)</para></listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-7-4-8">
|
||||
<title>Release 7.4.8</title>
|
||||
|
||||
<note>
|
||||
<title>Release date</title>
|
||||
<simpara>2005-05-05</simpara>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 7.4.7, including several
|
||||
security-related issues.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to version 7.4.8</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 7.4.X. However,
|
||||
it is one possible way of handling two significant security problems
|
||||
that have been found in the initial contents of 7.4.X system
|
||||
catalogs. A dump/initdb/reload sequence using 7.4.8's initdb will
|
||||
automatically correct these problems.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The larger security problem is that the built-in character set encoding
|
||||
conversion functions can be invoked from SQL commands by unprivileged
|
||||
users, but the functions were not designed for such use and are not
|
||||
secure against malicious choices of arguments. The fix involves changing
|
||||
the declared parameter list of these functions so that they can no longer
|
||||
be invoked from SQL commands. (This does not affect their normal use
|
||||
by the encoding conversion machinery.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The lesser problem is that the <filename>contrib/tsearch2</> module
|
||||
creates several functions that are misdeclared to return
|
||||
<type>internal</> when they do not accept <type>internal</> arguments.
|
||||
This breaks type safety for all functions using <type>internal</>
|
||||
arguments.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is strongly recommended that all installations repair these errors,
|
||||
either by initdb or by following the manual repair procedures given
|
||||
below. The errors at least allow unprivileged database users to crash
|
||||
their server process, and may allow unprivileged users to gain the
|
||||
privileges of a database superuser.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you wish not to do an initdb, perform the following procedures instead.
|
||||
As the database superuser, do:
|
||||
|
||||
<programlisting>
|
||||
BEGIN;
|
||||
UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
|
||||
WHERE pronamespace = 11 AND pronargs = 5
|
||||
AND proargtypes[2] = 'cstring'::regtype;
|
||||
-- The command should report having updated 90 rows;
|
||||
-- if not, rollback and investigate instead of committing!
|
||||
COMMIT;
|
||||
</programlisting>
|
||||
|
||||
Next, if you have installed <filename>contrib/tsearch2</>, do
|
||||
|
||||
<programlisting>
|
||||
BEGIN;
|
||||
UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
|
||||
WHERE oid IN (
|
||||
'dex_init(text)'::regprocedure,
|
||||
'snb_en_init(text)'::regprocedure,
|
||||
'snb_ru_init(text)'::regprocedure,
|
||||
'spell_init(text)'::regprocedure,
|
||||
'syn_init(text)'::regprocedure
|
||||
);
|
||||
-- The command should report having updated 5 rows;
|
||||
-- if not, rollback and investigate instead of committing!
|
||||
COMMIT;
|
||||
</programlisting>
|
||||
|
||||
If this command fails with a message like <quote>function
|
||||
"dex_init(text)" does not exist</>, then either <filename>tsearch2</>
|
||||
is not installed in this database, or you already did the update.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The above procedures must be carried out in <emphasis>each</> database
|
||||
of an installation, including <literal>template1</>, and ideally
|
||||
including <literal>template0</> as well. If you do not fix the
|
||||
template databases then any subsequently created databases will contain
|
||||
the same errors. <literal>template1</> can be fixed in the same way
|
||||
as any other database, but fixing <literal>template0</> requires
|
||||
additional steps. First, from any database issue
|
||||
<programlisting>
|
||||
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
|
||||
</programlisting>
|
||||
Next connect to <literal>template0</> and perform the above repair
|
||||
procedures. Finally, do
|
||||
<programlisting>
|
||||
-- re-freeze template0:
|
||||
VACUUM FREEZE;
|
||||
-- and protect it against future alterations:
|
||||
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
|
||||
</programlisting>
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>Change encoding function signature to prevent
|
||||
misuse</para></listitem>
|
||||
<listitem><para>Change <filename>contrib/tsearch2</> to avoid unsafe use of
|
||||
<type>INTERNAL</> function results</para></listitem>
|
||||
<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</> values</para>
|
||||
<para>
|
||||
The comparison code was wrong in the case where the
|
||||
<literal>--enable-integer-datetimes</> configuration switch had been used.
|
||||
NOTE: if you have an index on a <type>TIME WITH TIME ZONE</> column,
|
||||
it will need to be <command>REINDEX</>ed after installing this update, because
|
||||
the fix corrects the sort order of column values.
|
||||
</para></listitem>
|
||||
<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
|
||||
<type>TIME WITH TIME ZONE</> values</para></listitem>
|
||||
<listitem><para>Fix mis-display of negative fractional seconds in
|
||||
<type>INTERVAL</> values</para>
|
||||
<para>
|
||||
This error only occurred when the
|
||||
<literal>--enable-integer-datetimes</> configuration switch had been used.
|
||||
</para></listitem>
|
||||
<listitem><para>Ensure operations done during backend shutdown are counted by
|
||||
statistics collector</para>
|
||||
<para>
|
||||
This is expected to resolve reports of <application>pg_autovacuum</>
|
||||
not vacuuming the system catalogs often enough — it was not being
|
||||
told about catalog deletions caused by temporary table removal during
|
||||
backend exit.
|
||||
</para></listitem>
|
||||
<listitem><para>Additional buffer overrun checks in plpgsql
|
||||
(Neil)</para></listitem>
|
||||
<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</>
|
||||
correctly (Neil)</para></listitem>
|
||||
<listitem><para>Fix <filename>contrib/pgcrypto</> for newer OpenSSL builds
|
||||
(Marko Kreen)</para></listitem>
|
||||
<listitem><para>Still more 64-bit fixes for
|
||||
<filename>contrib/intagg</></para></listitem>
|
||||
<listitem><para>Prevent incorrect optimization of functions returning
|
||||
<type>RECORD</></para></listitem>
|
||||
<listitem><para>Prevent <function>to_char(interval)</> from dumping core for
|
||||
month-related formats</para></listitem>
|
||||
<listitem><para>Prevent crash on <literal>COALESCE(NULL,NULL)</></para></listitem>
|
||||
<listitem><para>Fix <function>array_map</> to call PL functions correctly</para></listitem>
|
||||
<listitem><para>Fix permission checking in <command>ALTER DATABASE RENAME</></para></listitem>
|
||||
<listitem><para>Fix <command>ALTER LANGUAGE RENAME</></para></listitem>
|
||||
<listitem><para>Make <function>RemoveFromWaitQueue</> clean up after itself</para>
|
||||
<para>
|
||||
This fixes a lock management error that would only be visible if a transaction
|
||||
was kicked out of a wait for a lock (typically by query cancel) and then the
|
||||
holder of the lock released it within a very narrow window.
|
||||
</para></listitem>
|
||||
<listitem><para>Fix problem with untyped parameter appearing in
|
||||
<command>INSERT ... SELECT</></para></listitem>
|
||||
<listitem><para>Fix <command>CLUSTER</> failure after
|
||||
<command>ALTER TABLE SET WITHOUT OIDS</></para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
@ -4953,6 +5231,121 @@ DROP SCHEMA information_schema CASCADE;
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-7-3-10">
|
||||
<title>Release 7.3.10</title>
|
||||
|
||||
<note>
|
||||
<title>Release date</title>
|
||||
<simpara>2005-05-05</simpara>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
This release contains a variety of fixes from 7.3.9, including several
|
||||
security-related issues.
|
||||
</para>
|
||||
|
||||
<sect2>
|
||||
<title>Migration to version 7.3.10</title>
|
||||
|
||||
<para>
|
||||
A dump/restore is not required for those running 7.3.X. However,
|
||||
it is one possible way of handling a significant security problem
|
||||
that has been found in the initial contents of 7.3.X system
|
||||
catalogs. A dump/initdb/reload sequence using 7.3.10's initdb will
|
||||
automatically correct this problem.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The security problem is that the built-in character set encoding
|
||||
conversion functions can be invoked from SQL commands by unprivileged
|
||||
users, but the functions were not designed for such use and are not
|
||||
secure against malicious choices of arguments. The fix involves changing
|
||||
the declared parameter list of these functions so that they can no longer
|
||||
be invoked from SQL commands. (This does not affect their normal use
|
||||
by the encoding conversion machinery.)
|
||||
It is strongly recommended that all installations repair this error,
|
||||
either by initdb or by following the manual repair procedure given
|
||||
below. The error at least allows unprivileged database users to crash
|
||||
their server process, and may allow unprivileged users to gain the
|
||||
privileges of a database superuser.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you wish not to do an initdb, perform the following procedure instead.
|
||||
As the database superuser, do:
|
||||
|
||||
<programlisting>
|
||||
BEGIN;
|
||||
UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
|
||||
WHERE pronamespace = 11 AND pronargs = 5
|
||||
AND proargtypes[2] = 'cstring'::regtype;
|
||||
-- The command should report having updated 90 rows;
|
||||
-- if not, rollback and investigate instead of committing!
|
||||
COMMIT;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The above procedure must be carried out in <emphasis>each</> database
|
||||
of an installation, including <literal>template1</>, and ideally
|
||||
including <literal>template0</> as well. If you do not fix the
|
||||
template databases then any subsequently created databases will contain
|
||||
the same error. <literal>template1</> can be fixed in the same way
|
||||
as any other database, but fixing <literal>template0</> requires
|
||||
additional steps. First, from any database issue
|
||||
<programlisting>
|
||||
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
|
||||
</programlisting>
|
||||
Next connect to <literal>template0</> and perform the above repair
|
||||
procedure. Finally, do
|
||||
<programlisting>
|
||||
-- re-freeze template0:
|
||||
VACUUM FREEZE;
|
||||
-- and protect it against future alterations:
|
||||
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
|
||||
</programlisting>
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>Change encoding function signature to prevent
|
||||
misuse</para></listitem>
|
||||
<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</> values</para>
|
||||
<para>
|
||||
The comparison code was wrong in the case where the
|
||||
<literal>--enable-integer-datetimes</> configuration switch had been used.
|
||||
NOTE: if you have an index on a <type>TIME WITH TIME ZONE</> column,
|
||||
it will need to be <command>REINDEX</>ed after installing this update, because
|
||||
the fix corrects the sort order of column values.
|
||||
</para></listitem>
|
||||
<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
|
||||
<type>TIME WITH TIME ZONE</> values</para></listitem>
|
||||
<listitem><para>Fix mis-display of negative fractional seconds in
|
||||
<type>INTERVAL</> values</para>
|
||||
<para>
|
||||
This error only occurred when the
|
||||
<literal>--enable-integer-datetimes</> configuration switch had been used.
|
||||
</para></listitem>
|
||||
<listitem><para>Additional buffer overrun checks in plpgsql
|
||||
(Neil)</para></listitem>
|
||||
<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</>
|
||||
correctly (Neil)</para></listitem>
|
||||
<listitem><para>Prevent <function>to_char(interval)</> from dumping core for
|
||||
month-related formats</para></listitem>
|
||||
<listitem><para>Fix <filename>contrib/pgcrypto</> for newer OpenSSL builds
|
||||
(Marko Kreen)</para></listitem>
|
||||
<listitem><para>Still more 64-bit fixes for
|
||||
<filename>contrib/intagg</></para></listitem>
|
||||
<listitem><para>Prevent incorrect optimization of functions returning
|
||||
<type>RECORD</></para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="release-7-3-9">
|
||||
<title>Release 7.3.9</title>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user