E.194. 版本 8.0.26
发布日期: 2010-10-04
这个版本包含各种自8.0.25以来的修复。关于8.0主版本的新特性信息, 请参阅第 E.220 节。
这预计是8.0.X系列的最后一个PostgreSQL版本。 建议用户尽快更新到新版本。
E.194.1. 迁移到版本 8.0.26
运行8.0.X的用户不需要转储/恢复。不过,如果你是从一个早于8.0.22的版本升级而来, 那么请参阅第 E.198 节。
E.194.2. 修改列表
-
为每个在PL/Perl和PL/Tcl中调用的SQL userid使用一个单独的解释器 (Tom Lane)
这个修改阻止由损坏另一个SQL用户身份在相同的会话中稍后执行的Perl或Tcl代码引起的安全问题 (例如,在一个SECURITY DEFINER函数中)。大多数脚本语言提供多种方式, 比如重定义目标函数调用的标准函数或操作符。如果没有这个修改, 任何拥有Perl或Tcl语言使用权限的SQL 用户基本上可以用目标函数的所有者的SQL权限做任何事情。
这个修改的代价是Perl和Tcl函数之间的沟通变得更加困难了。 为了提供一个转义出口,PL/PerlU和PL/TclU函数继续使用每个会话只有一个解释器。 不认为这是一个安全问题,因为所有这样函数的执行早已在数据库超级用户的受信任级别。
有可能自称提供受信任的执行的第三方过程语言也有相似的安全问题。 我们建议为了安全鉴定,联系你依赖的任何PL的作者。
感谢Tim Bunce指出这个问题 (CVE-2010-3433)。
阻止
pg_get_expr()
中可能的崩溃,通过不允许它被非系统目录字段的参数调用 (Heikki Linnakangas, Tom Lane)-
修复"不能处理未计划的子查询"错误 (Tom Lane)
当子查询包含一个别名引用连接,该引用连接扩展到一个包含另一个子查询的表达式时会发生这个问题。
当并非所有返回的行都是相同的行类型时,防止函数返回一组记录 (Tom Lane)
-
当写fsync的锁文件内容时,要小心(postmaster.pid也是套接字锁文件) (Tom Lane)
如果机器在主进程启动后不久就崩溃,那么这个疏忽会导致损坏锁文件内容。 随后会阻止主进程启动成功,直到手动删除锁文件。
-
当设定XID为深度嵌套子事务时,避免递归 (Andres Freund, Robert Haas)
如果这里限制堆栈空间,那么原来的代码会导致一个崩溃。
修复log_line_prefix的%i转义, 这可能在后台启动时就产生垃圾 (Tom Lane)
修复启用归档时,ALTER TABLE ... SET TABLESPACE 中可能的数据损坏 (Jeff Davis)
允许CREATE DATABASE和ALTER DATABASE ... SET TABLESPACE 被查询取消中断 (Guillaume Lelarge)
在PL/Python中,防止从
PyCObject_AsVoidPtr
和PyCObject_FromVoidPtr
中产生空指针 (Peter Eisentraut)改善contrib/dblink对包含删除了的字段的表的处理 (Tom Lane)
修复contrib/dblink中出现"重复的连接名称" 错误之后的连接泄露 (Itagaki Takahiro)
修复contrib/dblink,正确的处理连接名字长于62字节的情况 (Itagaki Takahiro)
更新编译基础结构和文档,以反映源代码仓库从CVS搬到了Git (Magnus Hagander and others)
-
更新时区数据文件到tzdata版本2010l,因为DST规律在Egypt和Palestine改变了; 也更正了Finland的历史。
这个改变也为两个Micronesian时区添加了新的名字: Pacific/Chuuk现在优先于Pacific/Truk(优先的缩写是CHUT不是TRUT), Pacific/Pohnpei优先于Pacific/Ponape。