发布日期:. 2010-05-17
这个版本包含各种自8.1.20以来的修复。关于8.1主版本的新特性信息, 请查看第 E.226 节。
运行8.1.X的用户不需要转储/恢复。不过,如果你是从一个早于8.1.18的版本升级而来, 那么请查看第 E.208 节。
使用一个开放标记应用到整个解释器强制plperl
中的限制,
而不是使用Safe.pm
(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)
在某些情况下,上下文打印函数将失败,因为当它要输出一个日志信息时当前事务早已回滚。
为现代的Perl版本更新PL/Perl的ppport.h
(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做了历史纠正。