E.238. 版本 8.0.15

E.238.1. 迁移到版本 8.0.15
E.238.2. 修改列表

发布日期:. 2008-01-07

这个版本包含各种自8.0.14以来的修复,包括对重大安全问题的修复。 关于8.0主版本的新特性信息,请参阅第 E.253 节

中文在此。。。

E.238.1. 迁移到版本 8.0.15

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

E.238.2. 修改列表

  • 阻止索引中的函数用用户的权限执行VACUUM, ANALYZE等 (Tom)

    在索引表达式中使用的函数和局部索引谓词是在制作一个新的表项时评估的。 一直以来认为,如果一个人修改了属于不受信任用户的表, 会带来特洛伊木马代码执行的风险。(请注意:触发器、缺省、检查约束等, 构成相同类型的风险。)但是索引中的函数带来额外的风险, 因为它们将被日常维护操作如VACUUM FULL执行, 而日常维护操作通常是在超级用户账户下自动执行的。例如, 一个不法用户可以通过设置特洛伊木马索引定义,然后等待下一个日常清理, 以超级用户权限执行代码。该修复为标准的维护操作(包括VACUUMANALYZEREINDEXCLUSTER) 安排了作为表的所有者而不是调用用户执行,相同的权限切换机制早已用于 SECURITY DEFINER函数。为了阻止绕过这个安全措施, 现在禁止在SECURITY DEFINER环境中执行 SET SESSION AUTHORIZATIONSET ROLE。 (CVE-2007-6600)

  • 修复了正则表达式包中的各种bug (Tom, Will Drewry)

    适当配置的正则表达式模式可能会引起崩溃,无限或者接近无限的循环, 和/或巨大的内存消耗, 所有这些造成服务器拒绝接受来自不可靠的源的正则表达式搜索模式的危害应用 (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)

  • 需要使用/contrib/dblink的非超级用户只使用口令认证,作为一个安全措施 (Joe)

    在8.0.14中出现的这个修复是不完整的,因为它只堵住了一些dblink 函数的漏洞。 (CVE-2007-6601, CVE-2007-3278)

  • 更新时区数据文件到tzdata版本2007k (尤其是,最近的Argentina修改) (Tom)

  • 修复一些WHERE false AND var IN (SELECT ...)的规划器失败 (Tom)

  • 保留ALTER TABLE ... ALTER COLUMN TYPE重建的索引的表空间 (Tom)

  • 让归档恢复总是启动一个新的WAL时间轴,而不是只在使用恢复停止时间时使用新的时间轴 (Simon)

    这避免了尝试重写一个现有的最后一个WAL段的归档拷贝的极端情况的风险, 并且看起来比原先的定义更简单、更干净。

  • 当表太小以至于没什么用时,让VACUUM不使用maintenance_work_mem (Alvaro)

  • 修复使用多字节数据库编码时,translate()潜在的崩溃 (Tom)

  • 修复平台的Perl定义类型bool作为int而不是 char时的PL/Perl处理 (Tom)

    虽然理论上会发生在任何地方,但是没有Perl的标准编译是这样做的...直到macOS 10.5。

  • 修复PL/Python,使其在长的异常消息上不会崩溃 (Alvaro)

  • 修复pg_dump以正确的处理继承的子表和它们的父表有不同的缺省表达式的情况 (Tom)

  • 修复了ecpg分析器 (Michael)

  • contrib/tablefunccrosstab() 作为一个类处理空行本身,而不是崩溃 (Joe)

  • 修复tsvectortsquery输出例程以正确的转义反斜杠 (Teodor, Bruce)

  • 修复to_tsvector()在巨大的输入字符串上的崩溃 (Teodor)

  • 当重新生成configure脚本时,请求一个特定的Autoconf版本 (Peter)

    这只影响开发者和包装者。这个修改是为了阻止意外的使用未测试的 AutoconfPostgreSQL版本的组合。 如果你真的想要使用一个不同的Autoconf版本, 你可以删除版本检查,但是结果如何就是你自己的责任了。