E.228. 版本 8.0.25

E.228.1. 迁移到版本 8.0.25
E.228.2. 修改列表

发布日期:. 2010-05-17

这个版本包含各种自8.0.24以来的修复。关于8.0主版本的新特性信息, 请参阅第 E.253 节

PostgreSQL社区将在2010年7月停止发放8.0.X版本系列的更新。 建议用户尽快更新到一个新的版本。

E.228.1. 迁移到版本 8.0.25

运行8.0.X的用户不需要转储/恢复。不过,如果你是从一个早于8.0.22的版本升级而来, 那么请参阅第 E.231 节

E.228.2. 修改列表

  • 使用一个开放标记应用到整个解释器,替代使用Safe.pm, 强制plperl中的限制 (Tim Bunce, Andrew Dunstan)

    最近的发展向我们证实:依赖Safe.pm来标记plperl 可以信赖太不安全了。这个改变整个删除了Safe.pm的使用, 支持使用一个总是应用开放代码标记的单独的解释器。 这个改变令人愉快的副作用包括:现在在plperl中以普通方式使用Perl的 strict编程是可能的了,并且Perl的$a$b 变量在短例程中像预期的那样工作,并且函数编译明显的更快了。 (CVE-2010-1169)

  • 阻止PL/Tcl执行pltcl_modules中不受信任的代码 (Tom)

    PL/Tcl自动从数据库表中加载Tcl代码的特性可能会被特洛伊代码攻击利用, 因为没有谁可以创建或插入那个表的限制。这个修改禁用了该特性, 除非pltcl_modules属于超级用户。(不过,没有对表上的权限进行检查, 所以实际需要一个较小安全模块表的安装仍然可以获得合适的权限来信任非超级用户。) 另外,阻止加载代码到不受限制的普通Tcl解释器中, 除非我们实在是想要执行一个pltclu函数。 (CVE-2010-1170)

  • 不允许非特权用户重置超级用户参数设置 (Alvaro)

    以前,如果一个非特权用户为自己运行ALTER USER ... RESET ALL, 或者为他拥有的数据库运行ALTER DATABASE ... RESET ALL, 会为该用户或该数据库删除所有特殊参数设置,即使其中有只支持超级用户可改的参数。 现在,ALTER将只删除该用户有权限更改的参数。

  • 如果后端关闭发生在向日志条目添加CONTEXT时, 避免后端关闭期间可能的崩溃 (Tom)

    在某些情况下,内容输出函数会失败,因为要输出一条日志信息时,当前事务早已回滚。

  • 更新PL/Perl的ppport.h为现代Perl版本 (Andrew)

  • 修复PL/Python中的各种内存泄露 (Andreas Freund, Tom)

  • 当展开一个引用自身的变量时,阻止psql中的无限递归 (Tom)

  • 确保contrib/pgstattuple函数迅速的取消中断 (Tatsuhito Kasahara)

  • 让服务器启动适当的处理shmget()为一个现有的共享内存段返回 EINVAL的情况 (Tom)

    这个行为在BSD驱动的内核包含macOS上观察到。它导致一个完全错误误导的启动失败, 抱怨共享内存请求尺寸太大。

  • 更新时区数据文件到tzdata版本2010j,因为DST规律在Argentina, Australian Antarctic, Bangladesh, Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia改变了;也为Taiwan做了历史修正。