E.254. 版本 7.4.30

E.254.1. 迁移到版本 7.4.30
E.254.2. 修改列表

发布日期: 2010-10-04

这个版本包含各种自7.4.29以来的修复。要想获得关于7.4主版本的新特性信息, 请参阅第 E.284 节

这预计是PostgreSQL 7.4.X系列的最后一个版本。 推荐用户尽快更新到新版本。

E.254.1. 迁移到版本 7.4.30

运行7.4.X的用户不需要转储/恢复。不过,如果您是从一个早于7.4.26的版本升级而来, 那么请参考第 E.258 节

E.254.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)

  • 修复cannot handle unplanned sub-select错误 (Tom Lane)

    当一个子查询包含一个连接别名引用扩大为一个表达式包含另一个子查询时会发生这个错误。

  • 在写锁文件(包括postmaster.pid和套接字锁文件)时要小心的同步锁文件的内容 (Tom Lane)

    如果机器在主进程启动后很快就崩溃了,那么这个疏忽会导致锁文件内容损坏。 这会阻止随后启动主进程的尝试成功,直到手动的移除锁文件。

  • 改善contrib/dblink处理含有删除的字段的表 (Tom Lane)

  • 修复contrib/dblink中出现duplicate connection name 错误之后的连接漏洞 (Itagaki Takahiro)

  • 更新基础构造和文档,以反应源代码从CVS迁移到了Git (Magnus Hagander and others)