E.105. 版本 8.1.20

发布日期: 2010-03-15

这个版本包含各种自8.1.19以来的修复。关于8.1主版本的新特性信息, 请查看Section E.125

E.105.1. 迁移到版本 8.1.20

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

E.105.2. 修改列表

  • 添加新的配置参数ssl_renegotiation_limit,控制多久为一个SSL连接做一次会话秘钥协商 (Magnus)

    该参数可以设置为0来完全禁止重新协商,如果使用了一个破碎的SSL库可能需要这样。特别的,一些供应商为CVE-2009-3555做了紧急补丁,导致重新协商的尝试失败。

  • 修复尝试从一个子事务启动失败中恢复时可能的崩溃 (Tom)

  • 修复与使用保存点和客户端编码与服务器编码不同有关的服务器内存泄露 (Tom)

  • substring()bit类型认为任何负的长度意为"所有剩余的字符串" (Tom)

    以前的编码只对待-1以这个方式,并且会为其他负值产生一个无效的结果值,可能导致崩溃 (CVE-2010-0442)。

  • 修复整数到位字符串的转换,当输出位宽度比给定的整数宽时(不同于8位的倍数),正确的处理第一个部分的字节 (Tom)

  • 修复某些情况下病理上慢的正则表达式匹配 (Tom)

  • 修复后端历史文件中的STOP WAL LOCATION入口,当结束位置正好在一个段的边界时报告下一个WAL段的名字 (Itagaki Takahiro)

  • 修复更多情况下临时文件的泄露 (Heikki)

    这纠正了一个在以前的小版本中引入的问题。失败的一个案例是:当plpgsql函数返回集在另一个函数的异常处理中调用时。

  • 当读取pg_hba.conf和相关的文件时,如果@出现在双引号标记的内部,不要将@something看做文件包含请求;另外,永远不要将@本身看做一个文件包含请求 (Tom)

    这阻止了角色或数据库名字以@开始时的不规律行为。如果你需要包含一个路径名包含空格的文件,你可以这样做,但是你必须写@"/path to/file"而不是让双引号包含整个结构。

  • 如果一个路径以pg_hba.conf和相关文件中的包含目标命名,那么阻止某些平台上的无限循环 (Tom)

  • 修复psql的numericlocale选项,不要格式化它不应该以latex和troff输出格式的字符串 (Heikki)

  • 修复plpgsql在复合字段设置为NULL时的失败 (Tom)

  • 在PL/Python中添加volatile标记,以避免可能的编译器特定不良行为 (Zdenek Kotala)

  • 确保PL/Tcl完全初始化Tcl解释器 (Tom)

    这个疏忽唯一已知的症状是:如果使用Tcl 8.5或更新,Tcl clock命令错误行为。

  • 当太多的关键字段指定到一个dblink_build_sql_*函数时,阻止contrib/dblink中的崩溃 (Rushabh Lathia, Joe Conway)

  • 修复粗心的内存管理引起的contrib/xml2中的各种崩溃 (Tom)

  • 更新时区数据文件到tzdata版本2010e,因为DST规律在Bangladesh、Chile、Fiji、Mexico、Paraguay、Samoa发生了改变。