> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/release/freebsd-4.6-release/4.6-errata.md).

# FreeBSD 4.6-RELEASE 勘误

**FreeBSD 项目**

版权所有 © 2000, 2001, 2002，FreeBSD 文档项目

```ini
$FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.1.2.82 2002/09/16 23:08:45 bmah Exp $
```

本文档列出了 FreeBSD 4.6-RELEASE 的勘误项，包含发行后才发现的重要信息。这些信息包括安全公告，以及与可能影响其运行或可用性的软件或文档相关的消息。在安装此版本 FreeBSD 之前，应始终查阅本文档的最新版本。

除非另有说明，此处列出的项目也适用于 FreeBSD 4.6.2-RELEASE，该版本旨在修复 4.6-RELEASE 中的某些特定问题（详见发行说明）。

FreeBSD 4.6-RELEASE 的勘误文档将维护至 FreeBSD 4.7-RELEASE 发布。

## 1 引言

本勘误文档包含有关 FreeBSD 4.6-RELEASE 的“最新消息”。在安装此版本之前，请务必查阅本文档，以了解发行后才发现的或已经发现并修复的问题。

随发行版实际分发的任何勘误文档（例如 CDROM 发行版中的）按定义已过时，但其他副本会在互联网上保持更新，应作为此版本的“当前勘误”查阅。这些其他勘误副本位于 [http://www.FreeBSD.org/releases/](http://www.freebsd.org/releases/)，以及任何保持此位置最新镜像的站点。

FreeBSD 4-STABLE 的源代码和二进制快照也包含本文档的最新副本（截至快照时的版本）。

有关所有 FreeBSD CERT 安全公告的列表，请参见 [http://www.FreeBSD.org/security/](http://www.freebsd.org/security/) 或 [ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/)。

## 2 安全公告

FreeBSD 4.6-RELEASE 包含对安全公告 SA-02:23 所述 bug 的修复（该公告涉及 set-user-id 或 set-group-id 程序对文件描述符的使用）。修复中发现了一个错误；使用 [procfs(5)](https://man.freebsd.org/cgi/man.cgi?query=procfs\&sektion=5\&manpath=FreeBSD+4.6-stable) 或 [linprocfs(5)](https://man.freebsd.org/cgi/man.cgi?query=linprocfs\&sektion=5\&manpath=FreeBSD+4.6-stable) 的系统仍可能被利用。安全公告 [FreeBSD-SA-02:23](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:23.stdio.asc) 的修订版包含更正的修复。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

解析器中的缓冲区溢出可能被恶意域名服务器或伪造 DNS 消息的攻击者利用。这可能被用于强制任意代码在客户端机器上以使用解析器的应用程序的权限运行。更多信息及修复请参见安全公告 [FreeBSD-SA-02:28](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:28.resolv.asc)。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

格式错误的 NFS 数据包可能触发 [tcpdump(1)](https://man.freebsd.org/cgi/man.cgi?query=tcpdump\&sektion=1\&manpath=FreeBSD+4.6-stable) 中的缓冲区溢出。此问题的修复请参见安全公告 [FreeBSD-SA-02:29](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:29.tcpdump.asc)。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

[ktrace(1)](https://man.freebsd.org/cgi/man.cgi?query=ktrace\&sektion=1\&manpath=FreeBSD+4.6-stable) 可用于跟踪曾经具有特权的进程的操作。这是不可取的，因为可能泄露这些进程在具有提升权限时获得的信息。变通方案和修复请参见安全公告 [FreeBSD-SA-02:30](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:30.ktrace.asc)。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

[pppd(8)](https://man.freebsd.org/cgi/man.cgi?query=pppd\&sektion=8\&manpath=FreeBSD+4.6-stable) 中的竞态条件可用于更改任意文件的权限。更多详情、变通方案和修复信息请参见安全公告 [FreeBSD-SA-02:32](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:32.pppd.asc)。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

OpenSSL 中发现多个缓冲区溢出。更多详情（包括变通方案和修复）可在安全公告 [FreeBSD-SA-02:33](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:33.openssl.asc) 中找到。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

XDR 解码器（由 Sun RPC 使用）中的 bug 可能导致堆缓冲区溢出。安全公告 [FreeBSD-SA-02:34](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:34.rpc.asc) 包含变通方案和修复信息。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

已修复本地用户在某些情况下可读取和写入 FFS 文件系统上任意块的问题。更多详情可在安全公告 [FreeBSD-SA-02:35](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:35.ffs.asc) 中找到，其中包含变通方案和修复信息。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

NFS 服务器代码中的 bug 可能允许远程拒绝服务攻击。安全公告 [FreeBSD-SA-02:36](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:36.nfs.asc) 包含修复和变通方案信息。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

[kqueue(2)](https://man.freebsd.org/cgi/man.cgi?query=kqueue\&sektion=2\&manpath=FreeBSD+4.6-stable) 中的 bug 可能允许本地用户使系统 panic。更正信息包含在安全公告 [FreeBSD-SA-02:37](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:37.kqueue.asc) 中。此问题已在 FreeBSD 4.6.2-RELEASE 中修复。

系统调用中的多个边界检查 bug 可能导致某些系统调用返回大部分内核内存。更多详情可在安全公告 [FreeBSD-SA-02:38](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:38.signed-error.asc) 中找到。此问题已在 FreeBSD 4.6.2-RELEASE 发布前修复，尽管未在随附的发行文档中提及。

`libkvm` 中的 bug 可能导致某些应用程序泄露文件描述符，这些描述符可访问潜在敏感信息。更多详情以及修复和变通方案可在安全公告 [FreeBSD-SA-02:39](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:39.libkvm.asc) 中找到。

## 3 最新消息

在 FreeBSD 4.6-RELEASE 中，默认最大 TCP 窗口大小从 65536 字节降至 57334 字节，以更好地兼容某些版本的 IPFilter。

FreeBSD 内核与 `archivers/zip` port 之间最近发现的交互可能导致 alpha 平台上的某些错误。FreeBSD Ports 树已提交发布后修复；从 2.3\_1 开始的 `archivers/zip` port 版本将正常运行。

在 alpha 平台上，[de(4)](https://man.freebsd.org/cgi/man.cgi?query=de\&sektion=4\&manpath=FreeBSD+4.6-stable) 和 [txp(4)](https://man.freebsd.org/cgi/man.cgi?query=txp\&sektion=4\&manpath=FreeBSD+4.6-stable) 驱动程序从软盘镜像上的引导内核移至 `mfsroot` 软盘上的模块。此更改是为了让 alpha 内核能容纳在引导软盘上。这对所有用户应该是透明的，因为 [sysinstall(8)](https://man.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+4.6-stable) 会自动加载它在 `mfsroot` 软盘上找到的任何内核模块。

对 `x11-servers/XFree86-4-Server` 软件包进行了几项最后时刻的补丁。这些补丁允许各种服务器配置程序更好地支持 [moused(8)](https://man.freebsd.org/cgi/man.cgi?query=moused\&sektion=8\&manpath=FreeBSD+4.6-stable) 支持的 `sysmouse` 设备。CDROM 和 FTP 站点上的二进制软件包包含此补丁，版本号为 4.2.0\_3。然而，发行版中包含的 ports 不包含此补丁。要获取更新版本，请使用 CVSup 获取更新的 ports。

一些 FreeBSD/i386 用户在从某些 ATA CDROM 驱动器读取时遇到困难。已观察到此问题的具体型号包括 AOpen 48x、52x 和 56x CDROM 驱动器，以及 Mitsumi Slim CRMC-SR242S CDROM 驱动器。典型症状是控制台和/或 [dmesg(8)](https://man.freebsd.org/cgi/man.cgi?query=dmesg\&sektion=8\&manpath=FreeBSD+4.6-stable) 缓冲区中出现以下错误消息（有时伴随内核 panic）：

```sh
acd0: READ_BIG command timeout - resetting
ata1: resetting devices .. done
```

在某些情况下，此 bug 可能阻止从受影响的 CDROM 驱动器安装 FreeBSD。它可能导致 [sysinstall(8)](https://man.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+4.6-stable) 在从 CD 介质提取发行版文件时挂起。

此处列出的两部分变通方案在某些（但不一定是所有）情况下已被证明有帮助。首先，要允许 CDROM 安装，需要修改正常的 CDROM 安装过程：

1. 将 FreeBSD 安装 CDROM 放入驱动器并启动计算机。
2. 等待类似以下的控制台消息：

   ```sh
   Hit [Enter] to boot immediately, or any other key for command prompt.
   Booting [kernel] in 9 seconds...
   ```
3. 立即按键盘上的 **Space** 键中断引导过程。
4. 在 `ok` 提示符下输入以下三行：

   ```sh
   ok set hw.ata.ata_dma="1"
   ```

   ```sh
   ok set hw.ata.atapi_dma="1"
   ```

   ```sh
   ok boot
   ```
5. 继续正常安装。

变通方案的第二部分在完成 CDROM 安装（或成功的源代码升级）后进行。它包括配置 [ata(4)](https://man.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+4.6-stable) 驱动程序，以便将来 CDROM 读取正常工作：

1. 将以下两行添加到 **/boot/loader.conf**（如果此文件不存在则创建）：

   ```sh
   hw.ata.ata_dma="1"
   hw.ata.atapi_dma="1"
   ```
2. 重启机器。

此问题已于 2002 年 7 月 31 日在 FreeBSD 4.7-PRERELEASE 以及 FreeBSD 4.6.2-RELEASE 中修复。

由于发行版生成过程中的 bug，**/usr/share/examples** 下的某些目录为空（最显著的是 **/usr/share/examples/cvsup**）。部分变通方案是通过 [sysinstall(8)](https://man.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+4.6-stable) 安装 `sshare` 发行版（从主菜单选择 Configure、Distributions、src，然后选择 share）。**/usr/src/share/examples** 随后将包含缺失的文件。此问题已于 2002 年 7 月 16 日在 FreeBSD 4.7-PRERELEASE 以及 FreeBSD 4.6.2-RELEASE 中修复。

发行说明“文件系统”部分中的一项包含一个小语法错误。应读作：“A bug has been fixed in soft updates that could cause occasional filesystem corruption if the system is shut down immediately after performing heavy filesystem activities, such as installing a new kernel or other software.”

由于疏漏，4.6-RELEASE 或 4.6.2-RELEASE 上的 `pkg_add -r` 可能尝试获取为 FreeBSD -STABLE 而非相应发行版构建的软件包。作为变通方案，在调用 [pkg\_add(1)](https://man.freebsd.org/cgi/man.cgi?query=pkg_add\&sektion=1\&manpath=FreeBSD+4.6-stable) 之前适当设置 **PACKAGESITE** 环境变量。例如，4.6.2-RELEASE 上的 [csh(1)](https://man.freebsd.org/cgi/man.cgi?query=csh\&sektion=1\&manpath=FreeBSD+4.6-stable) 用户可使用：

```sh
% setenv PACKAGESITE \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4.6.2-release/Latest/
```

***

本文件及其他发行相关文档可从 [http://snapshots.jp.FreeBSD.org/](http://snapshots.jp.freebsd.org/) 下载。

有关 FreeBSD 的问题，请在联系 <<questions@FreeBSD.org>> 之前先阅读[文档](http://www.freebsd.org/docs.html)。

所有 FreeBSD 4-STABLE 的用户都应订阅 <<stable@FreeBSD.org>> 邮件列表。

有关本文档的问题，请发送电子邮件至 <<doc@FreeBSD.org>>。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://book.bsdcn.org/release/freebsd-4.6-release/4.6-errata.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
