在两次预发布和大量错误修复之后,我们自豪地宣布1.4分支的新版本:1.4.20终于发布了。我们感谢所有测试了预发布版本和/或在我们的工单系统中报告了错误的用户。请特别留意以下安全公告:

下载

  • lighttpd-1.4.20.tar.gz
    (sha1sum: 61790c02d9e96c3cb23ffd3907f1caee64c475dd
    md5sum: 7ce7eefb487682b61d9b06b41864c64a)
  • lighttpd-1.4.20.tar.bz2
    (sha1sum: e5944a40579e0f37c6a0eeb0ad751344b2d6006c
    md5sum: ed6ee0bb714f393219a32768d86984d8)

变更

  • 修复mod_compress在旧版本gcc下编译的问题 (#1592)
  • 修复mod_extforward在旧版本gcc下编译的问题 (#1591)
  • 更新针对#1587的文档
  • 再次修复#285:SSL_shutdown后读取错误 (感谢marton.illes@balabit.com),并在其他调用前清除错误队列 (CVE-2008-1531)
  • 修复mod_magnet:在lighty.env中启用“request.method”和“request.protocol” (#1308)
  • 修复在没有正则表达式匹配时附加匹配部分导致的段错误 (只需提供空字符串) (#1601)
  • 在mod_fastcgi x-sendfile处理中使用data_response_init处理响应头,修复一个小“内存泄漏” (#1628)
  • 不要发送空的服务器头 (#1620)
  • 修复核心选项的条件解释
  • 启用重定向/重写中 % 和 $ 的转义;只有两种情况改变了它们的行为:“” => “%”,“$$” => “$”
  • 修复访问日志端口 (应为来自连接的端口,而非“server.port”) (#1618)
  • 修复mod_fastcgi前缀匹配:始终根据URL匹配前缀,而非绝对文件路径 (无论check-local设置如何)
  • 在mod_dirlisting中覆盖Content-Type头而非插入 (#1614),补丁由Henrik Holst提供
  • 处理mod_cgi在write()期间的EINTR错误 (#1640)
  • 默认允许所有HTTP状态码;仅对204、205和304禁用正文;为4xx和5xx生成错误页面 (#1639)
  • 修复mod_magnet,使其在生成内容时设置con->mode = p->id,从而返回4xx/5xx时不会附加错误页面
  • 从源代码中移除lighttpd.spec*,解决了与之相关的所有问题 ;-)
  • 不依赖于PATH_MAX (POSIX不要求它) (#580)
  • 如果文件名为空字符串,则禁用写入日志到access.log
  • 实现一种干净的方法来打开/dev/null,并在需要的地方用它来关闭stdin/out/err (#624)
  • 合并来自主干的spawn-fcgi更改 (来自`2191)
  • 让spawn-fcgi传播派生的fcgi应用程序的退出码
  • 在trigger_b4_dl中重定向后关闭连接 (感谢icy)
  • 如果mod_magnet返回状态码,则关闭连接
  • 修复mod_evasive中IPv6的bug (“#1579”:https://redmine.lighttpd.ac.cn/issues/1579)
  • 修复scgi HTTP/1.*状态解析 (“#1638”:https://redmine.lighttpd.ac.cn/issues/1638),由met`uberstats.com发现
  • [测试] 修复了系统,使用前台守护进程和waitpid
  • [测试] 从测试系统中移除了pidfile
  • [测试] 修复了需要PHP运行的测试 (如果不在端口1026运行,则在env[PHP]或/usr/bin/php-cgi中搜索php)
  • 修复了mod_accesslog中的拼写错误 (#1699)
  • 在可能的情况下用_len变体替换了buffer_{append,copy}_string (#1732) (感谢crypt)
  • 对secdownload md5令牌进行不区分大小写的匹配 (#1710)
  • mod_dirlisting中仅处理HEAD、GET和POST请求 (与staticfile相同) (#1687)
  • 修复了mod_secdownload中unsigned time_t的问题 (#1688)
  • 处理freebsd sendfile的EAGAIN和EINTR错误 (#1675)
  • mod_scgi派生套接字使用文件描述符0,并将STDERR重定向到/dev/null (#1716)
  • 修复了mod_proxy中的轮询负载均衡问题 (#1715)
  • 修复了mod_fastcgi中waitpid的EINTR处理
  • mod_{fast,s}cgi:覆盖环境变量 (#1722)
  • 插入了许多con->mode检查;这应防止两个模块在不应该的情况下处理同一个请求 (#631)
  • 修复了URL编码以编码更多字符 (#266)
  • 允许[s]cgi环境变量中包含数字 (#1712)
  • 修复了evhost模式丢失最后一个字符的问题 (#161)
  • 打印关于全局块中条件语句的有用的错误消息 (#1550)
  • 在mod_rewrite中匹配前解码URL (#1720)
  • 修复了ldap过滤器的条件性打补丁问题 (#1564)
  • 响应中头部匹配不区分大小写 (移除X-{Sendfile,LIGHTTPD-*},捕获Date/Server)
  • 修复了mod_userdir中不区分大小写文件名的问题 (#1589),由“anders1”发现
  • 修复了mod_accesslog中SYSLOG的格式化字符串错误
  • 在fastcgi调试中将fprintf替换为log_error_write
  • 修复了ssi表达式解析器中的内存泄漏 (#1753),感谢Take5k
  • 默认隐藏一些SSL错误,通过debug.log-ssl-noise启用它们 (#397)
  • 对于304不发送Content-Encoding (#1754),感谢yzlai
  • 修复stat_cache(fam)调用相对路径 (不带‘/’,可由x-sendfile触发) 时的段错误 (#1750)
  • 修复auth-ldap过滤器分割问题
  • 解决ldap连接失败时的ldap连接泄漏问题 (重启ldap)
  • 修复auth.backend.ldap.bind-dn/pw问题 (临时ldap重连时仅从全局上下文读取,感谢ruskie)
  • 修复请求头解析中的内存泄漏 (#1774,感谢qhy)
  • 修复mod_rewrite内存泄漏/无限循环检测问题 (#1775,感谢phy - 再次!)
  • 在mod_redirect中使用解码后的URL进行匹配 (#1720)