E.255. Release 8.0.3
Release date: 2005-05-09
This release contains a variety of fixes from 8.0.2, including several security-related issues. For information about new features in the 8.0 major release, see Section E.258 .
E.255.1. Migration to Version 8.0.3
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.
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.)
The lesser problem is that the
contrib/tsearch2
module
creates several functions that are improperly declared to return
internal
when they do not accept
internal
arguments.
This breaks type safety for all functions using
internal
arguments.
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 might allow unprivileged users to gain the privileges of a database superuser.
If you wish not to do an initdb, perform the same manual repair procedures shown in the 7.4.8 release notes .
E.255.2. Changes
-
Change encoding function signature to prevent misuse
-
Change
contrib/tsearch2to avoid unsafe use ofINTERNALfunction results -
Guard against incorrect second parameter to
record_out -
Repair ancient race condition that allowed a transaction to be seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner than for other purposes
This is an extremely serious bug since it could lead to apparent data inconsistencies being briefly visible to applications.
-
Repair race condition between relation extension and VACUUM
This could theoretically have caused loss of a page's worth of freshly-inserted data, although the scenario seems of very low probability. There are no known cases of it having caused more than an Assert failure.
-
Fix comparisons of
TIME WITH TIME ZONEvaluesThe comparison code was wrong in the case where the
--enable-integer-datetimesconfiguration switch had been used. NOTE: if you have an index on aTIME WITH TIME ZONEcolumn, it will need to beREINDEXed after installing this update, because the fix corrects the sort order of column values. -
Fix
EXTRACT(EPOCH)forTIME WITH TIME ZONEvalues -
Fix mis-display of negative fractional seconds in
INTERVALvaluesThis error only occurred when the
--enable-integer-datetimesconfiguration switch had been used. -
Fix pg_dump to dump trigger names containing
%correctly (Neil) -
Still more 64-bit fixes for
contrib/intagg -
Prevent incorrect optimization of functions returning
RECORD -
Prevent crash on
COALESCE(NULL,NULL) -
Fix Borland makefile for libpq
-
Fix
contrib/btree_gistfortimetztype (Teodor) -
Make
pg_ctlcheck the PID found inpostmaster.pidto see if it is still a live process -
Fix
pg_dump/pg_restoreproblems caused by addition of dump timestamps -
Fix interaction between materializing holdable cursors and firing deferred triggers during transaction commit
-
Fix memory leak in SQL functions returning pass-by-reference data types