E.122. 版本 8.1.3

发布日期: 2006-02-14

这个版本包含各种自8.1.2以来的修复,包括一个非常严重的安全问题。 关于8.1主版本的新特性信息,请查看Section E.125

E.122.1. 迁移到版本 8.1.3

运行8.1.X的用户不需要转储/恢复。不过,如果你是从一个早于8.1.2的版本升级而来, 那么请查看8.1.2的版本声明。

E.122.2. 修改列表

  • 修复允许任何登陆的用户为任何其他数据库用户id SET ROLE的错误 (CVE-2006-0553)

    由于不充分的有效性检查,用户会开发特殊的情况,SET ROLE 通常用于在错误之后恢复以前的角色设置。例如,这允许普通用户请求超级用户身份。 权限的增加只在8.1.0-8.1.2中存在风险。不过,在所有回退到7.3的版本中, 在SET SESSION AUTHORIZATION中有一个相关的错误, 允许非特权的用户使服务器崩溃,如果已经启用断言编译了(这不是缺省的)。 感谢Akio Ishida报告这个问题。

  • 修复自动插入的行中行可见性逻辑的错误 (Tom)

    在少数情况下,当前命令插入的行可能被看做早已是有效的,而此时不应该是这样的。 修复在8.0.4、7.4.9和7.3.11版本中创建的错误。

  • 修复在pg_clog和pg_subtrans文件创建期间会导致"文件早已存在" 错误的竞态条件 (Tom)

  • 修复缓存失效消息正好在错误时间到达导致崩溃的情况 (Tom)

  • 为预备语句中的UNKNOWN参数适当的检查DOMAIN约束 (Neil)

  • 确保ALTER COLUMN TYPE以正确的顺序处理FOREIGN KEYUNIQUEPRIMARY KEY约束 (Nakano Yoshihisa)

  • 修复以允许恢复拥有交叉模式引用自定义操作符或操作符类的转储 (Tom)

  • 允许pg_restore在COPY失败之后正确的继续; 以前它尝试将剩余的COPY数据看做SQL命令 (Stephen Frost)

  • 当没有指定数据目录时,修复pg_ctl unregister 的崩溃 (Magnus)

  • 修复libpq PQprint HTML标签 (Christoph Zwerschke)

  • 修复在AMD64和PPC上的ecpg崩溃 (Neil)

  • 允许SETOF%TYPE 一起在函数结果类型声明中使用

  • 如果错误发生在参数在PL/python中传递期间,那么正确的恢复 (Neil)

  • 修复plperl_return_next中的内存泄露 (Neil)

  • 修复PL/perl在Win32的环境上匹配后端的处理 (Andrew)

  • 各种优化器修复 (Tom)

  • 修复log_min_messages在Win32上设置为DEBUG3postgresql.conf之外时的崩溃 (Bruce)

  • 为Win32、Cygwin, OS X、AIX修复pgxs -L 的库路径声明 (Bruce)

  • 在检查Win32管理员权限时检查SID是否启用 (Magnus)

  • 适当的拒绝超出范围的数据输入 (Kris Jurka)

  • 可移植性修复,以在配置期间测试finiteisinf的存在 (Tom)

  • 通过避免每个数据行的内核调用,提高COPY IN经过libpq的速度 (Alon Goldshuv)

  • 提高/contrib/tsearch2索引创建的速度 (Tom)