第 8 章 更新的软件包
8.1. abrt
程序错误修复
- BZ#854668
- 如果 /etc/abrt/abrt.conf 文件已被修改,"DumpLocation"和"WatchCrashdumpArchiveDir"变量引用同一目录,ABRT 实用程序将尝试处理该目录中的文件作为存档和新问题目录,这会导致无法预测的结果。在这个版本中,ABRT 会在检测到此类错误配置时拒绝启动。
- BZ#896090
- 在创建案例时,Reporter-rhtsupport 实用程序发送了 RHT 客户中心服务器不接受的操作系统(OS)版本值。因此,无法创建新的问题单,并返回错误消息。在这个版本中,OS 版本值中的后缀 "Beta" 不会被剥离,RHT 客户中心服务器接受 version 值,并创建一个问题单。
- BZ#952773
- 在此次更新之前,当内核错误发生时,abrt-watch-log 和 abrt-dump-oops 工具会创建太多的新问题目录。因此,在报告问题时,用户会产生大量问题,/var 分区可能会溢出。要解决这个问题,在看到 5 或多个问题后,brt-dump-oops 已被修改来忽略所有其他问题。因此,用户不会被问题报告造成大量。
功能增强
8.2. anaconda
程序错误修复
- BZ#818233
- 在以前的版本中,Anaconda 无法识别写入 USB 驱动器的 DVD ISO 镜像作为安装的源存储库,因为这个设备没有分区。因此,ISO 充当
boot.iso
,无法安装其中包含的软件包。有了这个更新,Anaconda 已修改为包含带有 ISO 9660 格式的设备,并在此设备包含/repodata/repomd.xml
文件时将任何设备配置为源存储库。因此,Anaconda 现在 会如预期识别 USB 中的 ISO。 - BZ#845572
- 在此次更新之前,anaconda loader 命令通过重命名一个新的临时文件来创建
/etc/sysconfig/network
文件,该文件不会触发 NetworkManager 的 inotify 机制。因此,NetworkManager 可以通过 DHCP 或 DNS 获取的主机名覆盖network --hostname
kickstart 选项设置的主机名。在这个版本中,加载程序 已被修改,将新值直接写入/etc/sysconfig/network
中。因此,NetworkManager 现在接受这个文件中指定的 hostname 值。 - BZ#846336
- 在以前的版本中,如果第一个选择了第一个循环设备,则 anaconda 不会尝试使用另一个循环设备。因此,如果在 kickstart %pre 部分中使用了 loop 设备,则 HDD ISO 安装会失败。在这个版本中,如果第一个循环设备已在使用,则 anaconda 已修改为使用另一个循环设备。因此,HDD ISO 安装可以正常工作。
- BZ#847600
- 在这个版本中,list-harddrives 命令已被修改,不会列出其输出中的
/dev/srX
设备。 - BZ#851284
- 在这个版本中,在 About LVM 对话框中修正了几个拼写错误。
- BZ#852523
- 当将不同的磁盘用于 clearpart --drives 和 part --ondisk 命令时,会返回回溯追踪。因此,安装无法成功完成。在这个版本中,这些命令只使用一组磁盘。用户必须使用一个 clearpart 命令指定多个磁盘,否则只使用最后 clearpart --drives 参数。
- BZ#859420
- 在以前的版本中,当错误指定分区时,
No free space 错误信息
被错误地显示,而不是适当的No free slots
对话框。在这个版本中,当错误指定分区时会显示正确的错误消息。 - BZ#859569
- 在以前的版本中,在搜索
.discinfo
文件前,在救援模式中的 anaconda 卸载源 ISO。因此,stage2
参数被加载两次,从而增加引导时间。有了这个更新,Anaconda 被修改为在救援模式中跳过对.discinfo
的检查。因此,stage2
只加载一次,如预期一样。 - BZ#873281
- 在以前的版本中,当重新安装配置了 LVM raid1 卷的系统时,anaconda 会意外终止。这个程序错误已被解决,anaconda 不再在上述场景中崩溃。
- BZ#875644
- 当在 IBM System z 构架上执行 kickstart 升级时,Anaconda 会关闭系统而不是重启,即使 kickstart 配置中存在 reboot 命令。因此,需要手动重启。在这个版本中,增加了对 System z 上的 kickstart 升级的支持,从而解决了这个问题。
- BZ#877852
- 在以前的版本中,当在具有多个磁盘以及一个或多个包含 PPC PReP Boot 分区的系统中安装 Red Hat Enterprise Linux 6 时,anaconda 在所选安装磁盘上创建了一个空的 PPC PReP Boot 分区,但必须在已经存在的 PPC PReP Boot 中存储引导文件。因此,系统在安装后无法引导。在这个版本中,Anaconda 被修改为为引导文件使用正确的 PPC PReP Boot,从而解决了这个问题。
- BZ#878907
- 计算交换大小的算法不会考虑用于安装的空间量。因此,即使在小磁盘上,安装程序创建了大型 swap 空间,通常只为系统的其余部分保留空间不足。这个算法已被修改,以注册用于安装的空间大小。因此,在带有小磁盘的机器上创建较小的(10% 的已用磁盘空间) swap 对于系统的其余部分留出更多空间。
- BZ#880577
- 在以前的版本中 , Anaconda 不会在
XFS
文件系统上创建大于 16TB 的分区。这个程序错误已被解决,现在使用 100TB 的官方限制作为接受。 - BZ#881005
- 在此次更新之前,auto part 命令无法使用已定义的 prepboot 分区正常工作。因此,当使用
kickstart
文件时,其中包含定义 prepboot 分区以及 autopart 的 part 命令,Anaconda 会意外终止并出现分段错误。在这个版本中,auto part 已被修改为在上述配置中正常工作。因此,安装会如预期继续。 - BZ#882452
- 在以前的版本中,当在 anaconda GUI 中配置网络设备时,使用 FCoE 网络技术的设备不会自动设置为由 NetworkManager 控制。因此,NetworkManager 禁用这些设备,从而导致之前连接的 FCoE SAN 磁盘从 GUI 中消失。这个 bug 已被修复,在 GUI 中编辑网络设备配置不再断开之前设置的 FCoE 设备。
- BZ#886020
- 在以前的版本中,当在没有创建新文件系统的情况下为 / 挂载点使用原始分区时,Anaconda 不会返回警告信息。在这个版本中 , Anaconda 被修改为在这样的场景中显示警告信息。
- BZ#888292
- 在某些情况下,当使用 anaconda GUI 管理分区时,会发生意外丢失窗口。在这个版本中,父窗口设置已被修改,从而解决了这个问题。
- BZ#893849
- 有了这个更新,在 anaconda 中的日语区域设置已修正了几个拼写错误和翻译错误。
- BZ#894050
- 在以前的版本中,无论是否执行全新的安装或升级,anaconda 都使用一组默认内核参数创建
/etc/zipl.conf
配置文件。因此,当使用 anaconda 升级 IBM System z 系统时,用户添加到/etc/zipl.conf
中的内核参数会丢失。在这个版本中,增加了对带有 System z 架构的系统的引导装载程序升级的支持。因此,用户添加到/etc/zipl.conf
中的内核参数会在上述场景中保留。 - BZ#895098
- 在此次更新之前,当尝试使用 anaconda GUI 安装冲突软件包时,会显示误导警告信息。在这个版本中,这个消息已被修改来告知软件包冲突。
- BZ#895982
- MD 物理卷上的物理扩展大小小于 32MB,会导致 anaconda 在计算卷组容量时出现问题。要临时解决这个问题,在分配逻辑卷时,使用至少 32MB 或保留空闲空间(大小等于 physical-extent 大小)的物理扩展大小。
- BZ#901515
- 在继续软件包安装阶段前,Anaconda 不会检查所选存储库中是否有 核心 软件包组。如果这个组不存在,安装会意外终止。有了这个更新 , Anaconda 已被修改,以检查是否存在 内核。因此,当 内核 不可用时会显示警告信息,安装不再会崩溃。
- BZ#903689
- 在以前的版本中,当在安装过程中配置 VLAN 网络设备(如 eth0.171 )时,相同的配置也会为其父设备应用。因此,在安装过程中会错误地配置 VLAN 父设备,如 eth0。这个 bug 已被修复,VLAN 设备配置现在可以正确应用。
- BZ#909463
- 在某些情况下,由 anaconda 创建并传递给 GRUB 的内核命令行条目无法正常工作。因此,在多路径配置中,当内核命令行中指定的最后一个 FCoE 接口没有在线时,引导文件系统(BFS)会意外终止。在这个版本中,内核命令行条目的形式已被修改,BFS 在上述场景中不再会失败。
- BZ#919409
- 在以前的版本中,安装后
/etc/multipath/bindings
文件有不正确的 SElinux 上下文。这个程序错误已被解决,/etc/multipath/bindings
现在安装了正确的 SElinux 上下文。 - BZ#921609
- 在此次更新之前,生成的
kickstart
文件不包含 VLAN 接口的正确网络命令。因此,在安装过程中无法重复使用这些命令。这个程序错误已被解决,生成的kickstart
现在包含可重复使用的网络命令。 - BZ#928144
- 出于稳定性的原因,Red Hat Enterprise Linux 6 中默认禁用 AMD IOMMU 驱动程序。但是,当 应该为可信引导提供 IOMMU 时,需要这个驱动程序。在这个版本中,Anaconda 被修改为在安装
tboot
软件包时在内核引导参数中启用 AMD IOMMU。当使用可信引导且在 BIOS 中存在并启用 AMD IOMMU 规格时,会启用 MD IOMMU。要恢复这些设置,如果遇到稳定性问题,用户可以删除"amd_iommu=on"内核参数。 - BZ#947704
- 在以前的版本中,在安装 Red Hat Enterprise Linux 6 的过程中无法将 usb-storage 模块列入黑名单。这个程序错误已被解决,usb-storage 现在可以在不复杂的情况下将 usb-storage 列入黑名单。
- BZ#949409
- 在某些个别情况下,在 linuxrc.s390 安装过程中不会加载 dasd_eckd_mod 驱动程序,anaconda 变得无响应。在这个版本中,应用了补丁来防止这个问题。
- BZ#971961
- 在以前的版本中,绑定网络设备只会在安装早期阶段激活。因此,在
stage2
文件中由 network 命令配置的绑定设备不会被激活。这个行为已被更改,现在也可以在以后的安装阶段激活绑定设备。 - BZ#994504
- 在以前的版本中 , Anaconda 在安装过程中多次载入某些所需的软件包。因此,依赖项解决需要很长时间,随着磁盘和文件系统的数量增长。有了这个更新,Anaconda 被修改为使用更有效的选择软件包方法,从而减少了依赖项解决所需的时间。
- BZ#998486
- 在这个版本中,Anaconda 不再需要 fcoe-utils 软件包在 IBM System z 构架中安装。
- BZ#1003844
- 在此次更新之前,即使
kickstart
文件中使用了-hibernation
选项,anaconda 的 swap 大小限制为 10 %。有了这个更新,Anaconda 被修改为接受-hibernation
选项,在指定这个选项时 swap 大小不再限制为 10% 的磁盘空间。 - BZ#1004752
- 由于
/etc/ssh/sshd_config.anaconda
配置文件中的设置不正确,所以sshd
守护进程不会在 FIPS 模式的 IBM System z 架构上安装。因此,安装将无法成功。这个程序错误已被解决,sshd
现在在安装过程中以 FIPS 模式安装可以正常工作。 - BZ#1007641
- 在以前的版本中,在 VNC 模式中安装时不会列出多路径设备。这个程序错误已被解决,这些设备现在可以正确列出。
- BZ#1007683
- Red Hat Enterprise Linux 6 不支持使用没有分区的文件系统直接格式化的设备。在以前的版本中,anaconda 不会验证设备是否满足这种情况。因此,当尝试在这样的不支持的设备上创建新分区时,anaconda 会意外终止。在这个版本中,Anaconda 被修改来检查该设备是否已取消分区,并在这种情况下中止分区,从而防止崩溃。
- BZ#1007884
- 在以前的版本中,zipl 引导装载程序中的一个错误会在 anaconda 中造成运行时错误。因此,在从 Red Hat Enterprise Linux 6.4 升级到 6.5 后,iSCSI LUN 上带有 rootfs 的 IBM System z 架构无法引导。这个程序错误已被解决,系统升级后引导不再发生。
- BZ#1008731
- 由于 anaconda 中广播适配器的过时的 FCoE 检测,在 HP 系统上的 FCoE BFS 安装后,系统无法在操作系统后启动。在这个版本中,Anaconda 被修改为在 Broadcom 适配器上正确检测 FCoE,在上述场景中不再会出现引导问题。
- BZ#1008941
- 在某些情况下,在从 Red Hat Enterprise Linux 6.4 升级到 6.5 后,IBM System z 系统不会从正确的存储设备引导。这个程序错误已被解决,System z 系统现在在升级后从正确的设备引导。
- BZ#1009691
- 某些适配器(如 10GBaseT Twin Pond )需要更长的时间才能连接。此时间通常超过安装程序使用的 fipvlan 工具的超时限制。因此,在 GUI 中添加 FCoE 目标会失败。在这个版本中,会引发 fipvlan 的超时限制。现在,无论适配器类型是什么,FCoE 目标都会被成功添加。然而,若要在 GUI 中查看添加的设备,用户必须回到语言选择,然后返回两个屏幕。
- BZ#1013176
- 在以前的版本中,在安装特殊存储 BFS 过程中添加第二个适配器后,FCoE LUN 列表会从 anaconda 中的 SAN Devices 选项卡消失。这个程序错误已被解决,现在在安装过程中正确显示列表。
- BZ#1018703
- 在此次更新之前,anaconda 会错误地为 NVMe 设备提取分区名称。因此,引导装载程序安装在 NVMe 设备中会失败。这个程序错误已被解决,NVMe 设备现在可以成功安装。
功能增强
- BZ#890095
- 在这个版本中,在 kickstart 引导装载程序中的-
driveorder
选项中添加了对磁盘引用的更灵活的支持。现在,可以指定使用/dev/disk/by github/ 文件夹的
磁盘作为-driveorder
的参数。 - BZ#905227
- 在这个版本中,在 kickstart network 命令中添加了--
ipv6gateway
选项,该命令允许指定默认的 IPv6 网关。现在,可以在 network kickstart 命令中分别使用--gateway 或-
。ipv6gateway
指定 IPv4 和 IPv6 默认网关 - BZ#915666
- 在这个版本中,在 anaconda 中添加了一个分区大小检查,以确保 x86 构架上的引导分区始终小于 2TB,GRUB 引导装载程序需要这个分区。
- BZ#917815
- 在这个版本中,Anaconda 被修改为允许安装程序中的 DDNS 方法。如果在使用 DHCP 协议的网络设备的 kickstart 配置中指定
主机名
,此主机名
会被传递给 dhclient 工具。
8.3. arptables_jf
程序错误修复
- BZ#807315
- 在此次更新之前,"mangle-hw-s"和"mangle-hw-d"选项都需要使用 "--arhln" 选项。但是,即使命令行中指定了"--arhln"选项,"arptables"命令无法识别它。因此,无法成功使用这两个选项。这些更新的软件包修正了这个程序错误,现在可以将 "--arhln" 选项与 mangle 硬件选项一起使用。
- BZ#963209
- 当"-x"命令行选项(exact 值)与 "-L" (List 规则)选项一起使用时,arptables 实用程序不会列出规则,但发出一条错误消息表示 "-x" 选项是 illegal with "-L"。在这个版本中,arptables 工具在列出规则时使用 "-x" 选项。
8.4. augeas
安全修复
- CVE-2012-0786,CVE-2012-0787
- 在 Augeas 在更新配置文件时发现多个漏洞。使用 Augeas 更新目录中可由其他用户写入的配置文件的应用程序(例如,以 root 身份运行的应用程序,更新由非 root 服务用户拥有的目录中的文件)可能很复杂。
程序错误修复
- BZ#799885
- 在以前的版本中,当在 XML 属性中使用单引号时,Augeas 无法解析带有 XML lens 的文件。已提供了一个上游补丁,确保单引号被处理为有效的字符,解析不再会失败。
- BZ#855022
- 在此次更新之前,8 月在 vsftpd.conf 文件中无法设置 "require_ssl_reuse" 选项。更新的补丁修复了 vsftpd lens 正确识别此选项的问题,从而解决了这个问题。
- BZ#799879
- 在以前的版本中,XML lens 不支持非Unix 行结尾。因此,Augeas 无法加载包含此类行结尾的任何文件。已修复 XML lens,以使用 CRLF 行结尾处理文件,从而修复此错误。
- BZ#826752
- 在以前的版本中,8 月eas 无法解析 modprobe.conf 文件,在选项指令中带有 "=" 个字符)的空格。modprobe lens 已更新,解析不再会失败。
8.5. autofs
自动挂载守护进程的操作
。在使用文件系统时,守护进程会自动挂载文件系统,并在文件系统不忙时卸载它们。
程序错误修复
- BZ#859078
- 在某些情况下,autofs 工具并不遵循所有配置的设置,并使用 UDP 协议探测网络文件系统的可用性。这可能会导致某些服务器拒绝与消息的连接:
Client x.x.x.x is violating the NFSv4 specification by sending a UDP/IP datagram to the NFSv4 server.
在这个版本中,autofs 已修改为明确定义的 NFSv4 请求,从而解决了这个问题。 - BZ#886623
- 由于对 autofs 工具所做的更改,在挂载时探测服务器可用性,不再识别使用 RDMA 协议的挂载。在这个版本中,autofs 已被修改来不会探测使用 RDMA 协议的挂载的可用性。
- BZ#903944
- 在以前的版本中,autofs 工具忽略了
--random-multimount-selection
选项。因此,即使给出了本地文件系统,也不会使用此设置。这个程序错误已被解决,--random-multimount-selection
现在可以正常工作。 - BZ#908020
- 在以前的版本中,当出现两个几乎同时挂载的请求时,通过 autofs 工具挂载的 NFS 挂载有时会终止。这是因为使用无效的原型结构来识别协议。有了这个更新,autofs 已修改为使用数字协议 ID,而不是原型结构。因此,在上述场景中尝试挂载 NFS 不再会失败。
- BZ#971131
- 在此次更新之前,autofs 主映射解析程序无法识别
SELinux context=
选项,并在使用 选项时返回语法错误。主映射解析器已更新,以识别SELinux context=
,现在可以在不复杂的情况下使用。 - BZ#974884
- 在以前的版本中,autofs 工具无法识别系统管理员增加后的最大打开文件允许的限制。因此,无论新配置是什么,都会使用默认限制。有了这个更新,autofs 已被修改来检查此限制的更改并正确应用它们。
- BZ#996749
- 在以前的版本中,
lib
ldap 库不会以线程安全方式初始化。因此,在运行 自动挂载 时,ber_memalloc_x()
功能可能会意外终止,并显示分段错误。在这个版本中,libldap 的初始izaliton 已修改为 thread-safe,在上述场景中ber_memalloc_x()
不再崩溃。(BZ#996749)
- BZ#979929
- 当
自动挂载守护进程
检查主机可用性并且其中一个网络接口标记为"DOWN"时,automount
终止并显示分段错误。在这个版本中,添加了这个问题单的检查,不再会发生分段错误。 - BZ#994296
- 当
自动挂载守护进程
收到关闭信号时,执行 autofs reload 命令会导致自动挂载在
从 auto.master 映射中删除多个映射时停止运行。添加了补丁来修复这个错误,在上述情况下,automount
不再终止。 - BZ#994297
- 删除添加当前映射条目的代码的更改会导致通配符间接多挂载映射条目无法挂载。现在,添加了一个修复通配符多映射回归的补丁,映射条目现在可以成功挂载。
- BZ#1002896
- 由于创建过期线程时发生的执行顺序争用,因此
automount
守护进程会变得无响应。处理过期线程创建的代码已被修改,以防止上述问题。 - BZ#996749
- 在以前的版本中,不会对 LDAP 初始化调用执行锁定。但是,这些功能不是线程安全,可能会发生竞争条件。在这个版本中,添加了锁定,竞争条件的风险会减少。
功能增强
8.6. batik
程序错误修复
- BZ#631677
- 在这个版本中,删除了空的 batik-debuginfo 软件包。
- BZ#867701, BZ#995471
- 在以前的版本中,尝试使用 rasterizer 工具将 SVG 镜像转换为 JPEG 格式会导致返回错误。在这个版本中,一个补丁用于修复这个程序错误,rasterizer 现在会正确将 SVG 镜像转换为 JPEG 格式。
- BZ#883464
- 在以前的版本中,inventory.mf 文件包含关键字 "version" 而不是 "bundle-version"。因此,Eclipse 平台无法使用 Batik 工具正常工作。这个程序错误已被解决,Eclipse 现在可以正常工作。
- BZ#979527, BZ#995471
- 由于底层源代码中的一个错误,尝试使用 ttf2svg 字体转换器失败,但例外。这个版本应用补丁来修复这个程序错误,ttf2svg 现在可以正常工作。
- BZ#995471
- 在以前的版本中,batik 软件包包含很多错误,其他类路径错误和与缺少模块连接的错误,用来处理 JPEG 格式。因此,Batik 工具(如 raterizer、svgpp 和 ttf2svg)会失败,并显示例外。在这个版本中,底层源代码已被修改来修复这些 bug,因此上述实用程序现在可以正常工作。
8.7. bfa-firmware
8.8. bind-dyndb-ldap
程序错误修复
- BZ#908780
- 在以前的版本中,bind-dyndb-ldap 插件在没有 "idnsUpdatePolicy" 属性的情况下无法正确处理 DNS 区域,这会导致有害但误导的错误消息:zone serial ([zone serial])保持不变。区域可能无法传送到从设备。每个区域重新加载或在每次受影响的 DNS 区域更改后可能会记录此消息。bind-dyndb-ldap 插件已被修复,因此如果 DNS 区域中没有定义 "idnsUpdatePolicy" 属性,它将不再打印任何错误消息。
- BZ#921167
- 在以前的版本中,bind-dyndb-ldap 插件错误地处理了 "zonesub" match-type 的更新策略,这会导致在处理 update-policy 参数过程中意外终止 BIND 守护进程。bind-dyndb-ldap 插件已被修复,使用 "zonesub" match-type 正确处理 update-policy,因此不再在这种情况下崩溃。
- BZ#923113
- bind-dyndb-ldap 插件太早处理设置,这会导致 BIND 守护进程在启动或重新加载过程中意外终止并出现断言失败。bind-dyndb-ldap 插件已被修复,以便稍后处理其选项,因此在启动或重新加载过程中不再崩溃。
- BZ#1010396
- 在此次更新之前,带有默认配置的 bind-dyndb-ldap 插件没有建立到 LDAP 服务器的足够连接,用于指针记录(PTR)同步功能,因此 PTR 记录同步会失败。在这个版本中,默认连接数量增加到 4,PTR 记录同步现在可以正常工作。
8.9. biosdevname
错误修复
- BZ#1000386
- 在以前的版本中,addslot ()函数为两个或多个接口返回相同的 "dev->index_in_slot" 值。因此,多个网络接口可以命名为 "renameN"。在这个版本中,恢复用于获取 biosdevname 版本 0.3.11 中存在的端口号的逻辑,因此所有接口都如预期命名。
8.10. boost
错误修复
- BZ#820670
- Boost 软件包不包含 Boost.Math 共享库,它包括与复杂数字和 gamma、beta 和 erf 特殊功能相比,在 C++ 库扩展技术报告中指定的 trigonometric 功能。在这个版本中,添加了 boost-math 子软件包,其中包括与上述功能对应的符号。
8.11. busybox
安全修复
- CVE-2013-1813
- 找到 mdev BusyBox 实用程序可以在具有全局可写权限的 /dev 中创建某些目录。本地非特权用户可以使用此缺陷来操作 /dev 目录树的部分内容。
程序错误修复
- BZ#820097
- 在以前的版本中,由于 IBM System z 架构上有太大的字符串大小优化,因此在处理标准输入后,"wc" BusyBox 命令会在处理标准输入后失败,并显示以下错误:wc: : No such file or directory这个程序错误已通过禁用字符串大小优化,"wc"命令在 IBM System z 构架中可以正常工作来解决。
- BZ#859817
- 在此次更新之前,"mknod"命令无法使用大于 255 的主号或次号创建设备节点。因此,kdump 工具无法处理这样的设备。底层源代码已被修改,现在可以使用"mknod"命令创建大于 255 的主或次号的设备节点。
- BZ#855832
- 如果选择了 NFS 服务器中的网络安装,则"mount"命令默认使用 UDP 协议。如果服务器只支持 TCP 挂载,这会导致 mount 命令失败。因此,Anaconda 无法继续安装。这个程序错误已被解决,NFS 挂载操作默认为 TCP 协议。
8.12. ca-certificates
功能增强
- BZ#544376
- 这个更新提供共享系统证书颁发机构存储,这是配置数据的系统范围的信任存储,需要作为证书信任决策的输入。这是对经典证书颁发机构配置文件和 libnssckbi NSS 信任模块的功能兼容。这个功能必须由管理员显式启用。有关该功能的更详细描述,请参阅 ca-certificates 软件包中的 update-ca-trust 手册页。
8.13. cifs-utils
8.14. cjkuni-fonts
错误修复
- BZ#651651
- 在以前的版本中,在某些配置中,KDE 引导菜单没有显示中文区域(zh-CN 和 zh-TW)中的任何中文字符,而日语和韩语没有这个问题。在这个版本中,KDE 启动菜单在中文区域中显示中文字符。
8.15. 集群和 gfs2-utils
程序错误修复
- BZ#996233
- 在此次更新之前,如果一个 gfs2_tool、gfs2_quota、gfs2_grow 或 gfs2_jadd 命令被意外终止,则这些工具使用的临时 GFS2 元数据挂载点可以被挂载。挂载点也没有在 /etc/mtab 文件中注册,因此"umount -a -t gfs2"命令没有卸载它。这个挂载点可能会阻止系统正常重新引导,并在正常的 GFS2 挂载点后手动卸载它时导致内核 panic。在这个版本中,为临时挂载点创建一个 mtab 条目修正了这个问题,它会在收到信号时退出前卸载它。
- BZ#893925
- 在以前的版本中,如果在 two_node 模式中运行的集群中短暂的网络故障,cman 工具无法正常工作,且没有隔离延迟。因此,当重新建立连接时,两个节点会相互终止。这个版本为具有较高节点 ID 的节点添加了 5 秒的延迟到"fenced"守护进程,且上面描述的问题不再发生。另一个选择是将隔离延迟添加到 "cluster.conf" 文件中,如红帽知识库所述(请参阅 https://access.redhat.com/site/solutions/54829)。
- BZ#982670
- 在此次更新之前,在执行"restart"命令时,cman 初始化脚本无法正确处理其锁定文件。因此,在节点重启过程中,节点可以被其他成员从集群中删除。cman init 脚本已被修改来正确处理锁定文件,现在集群的其他节点不会采取隔离操作。
- BZ#889564
- 在以前的版本中,当 corosync 工具检测到 "process pause" 时,旧的,因此无效的控制组 ID 有时会发送到 gfs_controld 守护进程。因此,gfs_controld 变得无响应。在这个版本中修复了 gfs_controld,以丢弃旧控制组群 ID 的消息,在这种情况下,gfs_controld 不再挂起。
- BZ#888857
- 在此次更新之前,"fenced"守护进程和其他相关守护进程偶尔关闭一个仍在尝试停止守护进程期间 corosync 库引用的文件描述符。因此,守护进程无法正确终止,关闭集群工具会失败。这个程序错误已被解决,文件描述符现在保持打开状态,它已被守护进程使用,守护进程会正确终止。
- BZ#989647
- 在以前的版本中,fsck.gfs2 工具无法正确处理特定类型的文件系统崩溃。因此,fsck.gfs2 终止并显示出错信息,且不会修复崩溃。这个版本扩展了 fsck.gfs2 处理文件系统损坏的功能,上面描述的问题不再发生。
- BZ#1007970
- 在以前的版本中,mkfs.gfs2 工具中没有 "-K" 选项。因此,mkfs.gfs2 返回 "invalid option" 错误消息,无法使用这个选项保留且不丢弃未使用的块。在这个版本中,mkfs.gfs2 可以正确地处理 "-K" 选项。
- BZ#896191
- cluster.conf (5)手册页包含默认 syslog 工具为"daemon"的错误信息。在这个版本中,此声明修正为 "local4"。
- BZ#902920
- 在以前的版本中,当全局文件系统 2 (GFS2)中的目录信息被错误替换时,fsck.gfs2 工具无法正确识别。另外,fsck.gfs2 没有正确检查 GFS2 目录哈希表的一致性。因此,fsck.gfs2 不会报告文件系统的问题,以及损坏的目录中的文件不可用。有了这个更新,fsck.gfs2 已修改为进行广泛的完整性检查,现在可以识别和修复其他描述的问题。
- BZ#963657
- 在此次更新之前,在停止 GFS2 资源时,不会考虑嵌套的全局文件系统 2 (GFS2)挂载点。因此,挂载点没有以正确顺序卸载,gfs2 工具无法停止。gfs2 init 脚本已修改为以正确顺序卸载 GFS2 挂载点,在这种情况下,gfs2 的停止不再会失败。
- BZ#920358
- 在以前的版本中,qdiskd 守护进程无法正确处理新重新加入已重启的节点。因此,qdiskd 在初始化后删除了这样的节点。在这个版本中,qdiskd 会跳过 "S_NONE" 状态中丢失节点的更新计数,它不会在上述场景中删除节点。
- BZ#888318
- 在以前的版本中,当 "cluster.conf" 文件中错误地设置了令牌超时时,qdiskd 守护进程不会发出特定的错误消息。因此,qdiskd 以 "qdiskd: configuration failed" 错误消息终止,代表没有详情。在这个版本中,为上述情况添加了特定的错误消息。
- BZ#886585
- 在以前的版本中,gfs2_grow 工具会在没有增长的情况下返回零退出状态,因为设备增长方式。因此,自动化脚本(特别是对 gfs2_grow 测试)收到了不正确的 "0" 返回代码。在这个版本中,gfs2_grow 已被修改,在操作失败时返回非零退出状态。
- BZ#871603
- 在以前的版本中,"ccs_tool create"命令的帮助文本包含 "addfence" 子命令不正确的参数,即 "user" 而不是 "login"。因此,用户可以创建不正确的 "cluster.conf" 文件。在这个版本中,帮助文本已被修正。
- BZ#985796
- 在以前的版本中,当 fsck.gfs2 实用程序修复超级块时,它会从"cluster.conf"文件中查找锁定配置字段。因此,当修复超级块时,"lockproto"和"locktable"字段可能会错误地设置。在这个版本中,"lockproto"和"locktable"字段被设置为 sensible 默认值,现在指示用户在 fsck.gfs2 运行结束时使用 tunegfs2 程序设置字段。
- BZ#984085
- 在以前的版本中,当目录叶块重复时,fsck.gfs2 工具无法正确处理情况。因此,偶尔找不到损坏目录中的文件,fsck.gfs2 变得无响应。在这个版本中,fsck.gfs2 会检查所有目录中重复块,标识和修复损坏,在这种情况下不再挂起。
8.16. ClusterMon
程序错误修复
- BZ#951470
- 在此次更新之前,当尝试将本地机器的地址与特定集群节点条目关联时,modclusterd 服务会进行不正确的 CMAN API 调用,但没有成功。因此,modclusterd 每 5 秒返回日志消息。另外,当启用了 CMAN 记录时,包含成员资格消息时,会发出由 CMAN API misuse 导致的消息。现在,CMAN API 调用会被正确使用,这可更正上述结果。
- BZ#908728
- 在以前的版本中,只有访问 IPv6 可用时,modclusterd 服务在 IPv4 环境中意外终止。在这个版本中,modclusterd 不再会在只使用 IPv4 的环境中崩溃。
- BZ#888543
- 在以前的版本中,SNMP (Simple Network Management Protocol)代理公开集群状态,并以 cluster-snmp 的形式提供,这会导致 SNMP 服务器(snmpd)在加载此模块时意外终止,其中包含的服务器被指示重新加载。这是因为此服务器所引发的资源不当,特别是警报。现在,该模块会在卸载时正确清理这些资源,从而防止重新载入崩溃。
8.17. compat-openmpi
错误修复
- BZ#876315
- 在以前的版本中,compat-openmpi 软件包没有确保与 Open MPI 共享库的早期版本兼容。因此,如果在 Red Hat Enterprise Linux 6.3 及之后的版本中使用 Open MPI 运行某些应用程序,如果用户是基于 Red Hat Enterprise Linux 6.2 及更早版本中使用的 Open MPI 版本编译的。在这个版本中,compat-openmpi 软件包现在与 Red Hat Enterprise Linux 6 上的 Open MPI 的早期版本兼容。
8.18. conman
错误修复
- BZ#891938
- 在以前的版本中,时区字符串的长度范围不足来处理所有已知的时区代码。因此,如果时区名称由五个或更多字符组成,则 conmand 守护进程无法启动。最大字符串长度已设置为 32,现在 conmand 始终会如预期启动。
8.19. coolkey
程序错误修复
- BZ#806038
- 在以前的版本中,coolkey 始终创建一个虚假的智能卡读取器,以避免在没有智能卡读取器可用时,网络安全服务(NSS)和 PC/SC Lite 框架出现问题。但是,智能卡不再可用于智能卡验证,并且 NSS 和 pcsc-lite 软件包已被更新,以处理没有附加电子发送器的情况。因此,这对 coolkey 中的读者变得不必要,在某些情况下可能会导致某些应用程序出现问题。这个版本会修改对应的代码,以便 coolkey 不再创建 bogus e-gate 智能卡。
- BZ#906537
- 对于之前版本的 coolkey,一些签名操作(如 PKINIT)可能会在支持 CAC 和 PIV 接口的 PIV 端点卡上失败。底层 coolkey 代码已被修改,因此这些 PIV 端点卡现在可以按预期与 coolkey 一起工作。
- BZ#991515
- coolkey 库只使用 NSS DBM 数据库注册,但 NSS 现在使用 SQLite 数据库格式,这是首选的。这个版本修改了 coolkey,以与两个 NSS 数据库正确注册。
功能增强
- BZ#951272
- 对包含 Elliptic Curve Cryptography (ECC)证书的令牌的支持已添加到 coolkey 软件包中,因此 coolkey 库现在可以使用 ECC 调配卡。
8.20. coreutils
安全修复
- CVE-2013-0221,CVE-2013-0222,CVE-2013-0223
- 发现 sort、uniq 和 join 实用程序没有正确限制 alloca ()函数的使用。攻击者可以利用此漏洞通过提供较长的输入字符串使这些工具崩溃。
程序错误修复
- BZ#747592
- 在以前的版本中,由于来自子进程的信号传播不正确,"su"命令的返回值不正确,且父进程中没有显示核心转储信息。在这个版本中,来自子进程的信号传播已被修复,"su"命令的返回值已被修正。因此,来自子进程的内核转储消息不再被忽略,"su"命令会返回正确的退出值。
- BZ#749679
- 在以前的版本中,su 命令不会等待其子进程的末尾。因此,su 工具可能会在子进程完成前退出。这个程序错误已被解决,现在 "su" 会等待子进程退出。
- BZ#816708
- 在以前的版本中,当在没有 user name 参数的情况下调用时,"id -G"和 "id --groups" 命令会打印 password 数据库中列出的默认组 ID。有时,这个 ID 是不正确的或无效,特别是当它被改变时。在这个版本中,当未指定用户时,上述命令只会打印有效和实际 ID。
- BZ#827199
- "tail -f"命令使用 inotify 跟踪文件中的更改。对于远程文件系统 [-/,] inotify 不可用。对于未知文件系统,如 panasas,"tail -f"失败,而不是回退到轮询。现在,已知文件系统列表已被更新,"tail -f"已被修改,以回退到对未知文件系统进行轮询。因此,"tail -f"现在可以正常工作,即使是在未知文件系统中,只有有关未知文件系统的警告,回退到轮询。
- BZ#842040
- 在以前的版本中,"df"命令解释输出挂载名称中的控制字符。因此,当输出中有控制字符(如 "\n" )时,对脚本的读和有问题的可能不太方便。有问题的字符已被问号符号("?")替代,此类输出不再难以读取。
- BZ#867984
- 在以前的版本中,核心工具中对多字节区域支持的红帽特定补丁缺少了"cut"命令的"--output-delimiter"选项的处理。因此,如果指定,则忽略该选项。coreutils 中实施了"--output-delimiter"选项的支持,用户现在可以将此选项用于多字节区域。
- BZ#889531
- 在以前的版本中,当"su"会话被信号终止时,它会返回一个不正确的退出状态。这会导致出现各种问题,如 ksh 锁定。在这个版本中解决了退出状态处理的问题,上述情况不再发生。
- BZ#911206
- 在以前的版本中,stat 工具使用 setpwent ()和 setgrent ()函数。这会导致在调用 stat 工具时 NIS 数据库下载问题,从而导致性能问题。在这个版本中,stat 实用程序源代码中不再存在上述系统调用。因此,每个 stat 工具都不需要 NIS 数据库下载。
- BZ#956143
- 在解析文件内容时,字段末尾使用过时的密钥格式(+POS -POS)指定,因此 sort 程序错误地决定字段的末尾,因此会生成不正确的输出。在这个版本中解决了解析逻辑,在使用这些过时的密钥格式时与 "-k" 选项的使用匹配。sort 工具现在返回预期的结果。
- BZ#960160
- 在以前的版本中,在某些情况下,date 工具可以解析无效的输入。这是因为解析机制中的签名扩展为 "other" 字节。这会导致一些无效输入的意外结果。解析机制已被修复,日期工具现在可以在适当的情况下正确识别无效的输入。
- BZ#965654
- 在以前的版本中,即使指定了 "status=noxfer","dd" 工具也会生成传输统计输出。要修复这个错误,实施了一个新的选项 "status=none" 来阻止所有信息输出。因此,dd 生成的不必要的信息将不再使用这个选项显示。
- BZ#967623
- "su"实用程序具有"-p"选项,可保留一些环境变量。但是,su (1)手册页错误地声明整个环境被保留。在这个版本中,对手册页进行了调整,以列出所有保留的环境变量。
- BZ#980061
- 当在两个文件系统间移动目录时,"mv"工具无法覆盖空目录,这违反了 POSIX 标准。在这个版本中,mv 不再无法覆盖空目标目录,POSIX 标准规则会被模糊处理。
- BZ#997537
- 在以前的版本中,当指定 "-n" 选项时,"pr"工具使用子优化代码例程,并使用零或空格不一致的 padding。因此,当 "-n" 选项与 32 或更高版本的值一起使用时,pr 会意外终止。此外,不一致的 padding 很难由脚本解析。在这个版本中,行号被空格一致添加,并改进了程序来正确处理 "-n" 选项的高值。因此,"pr"工具不再意外终止。
- BZ#1006221
- 在以前的版本中,"tail -f"命令无法正确监控死的符号链接。因此,"tail -f"会忽略在符号链接被终止后指向符号链接的更新。现在,当死符号链接被重新检查并恢复引用内容时,这个程序错误已被解决,"tail -f"会注意到。
功能增强
8.21. corosync
程序错误修复
- BZ#854216
- 当在设置了 failed_to_recv 配置选项的故障网络中运行 corosync 时,在集群节点标记为"failed to receive"后,corosync 通常会以分段错误终止。这是因为在集群节点成员资格决定过程中满足 assert 条件。要解决这个问题,如果被标记为 "failed to receive" 的节点触发,底层代码已被修改来忽略 assert。这很安全,因为在这种情况下始终建立了单个节点成员资格。
- BZ#877349
- 在安装后,corosync-notifyd 服务没有正常启动,因为 corosync 通知程序的默认配置不存在。在这个版本中,在 /etc/sysconfig/corosync-notifyd 文件中添加了该服务的默认配置,以便 corosync-notifyd 现在可以在安装后无需额外配置即可启动。
- BZ#880598
- 由于底层代码中的一个错误,corosync API 可以读取未初始化的内存,因此在配置和统计数据库中递增或减少特定对象的值时返回不正确的值。在这个版本中,在返回 [u]int16 类型值时,将对应的代码修改为仅读取 16 位内存而不是 32 位。corosync API 不再读取未初始化的内存并返回正确的值。
- BZ#881729
- 由于 corosync 日志记录系统中罕见的竞争条件,在尝试解引用 NULL 指针后 corosync 可能会以分段错误终止。pthread mutex 锁定已添加到相应的格式化变量中,以避免出现日志格式和日志打印功能之间的竞争条件。
- BZ#906432
- 在以前的版本中,corosync 不支持 IPv6 双冒号表示法,在解析 corosync.conf 文件时无法正确处理大括号。因此,totem 服务在使用 IPv6 时无法启动。如果配置文件包含其他右括号,则不会显示任何错误,以告知用户为什么无法成功解析配置文件。在这个版本中解决了这些解析 bug 的问题,使得 totem 服务现在可以成功启动,如果 corosync.conf 文件包含额外的右括号,则会显示错误消息。
- BZ#907894
- 由于 corosync 代码中的多个错误,如果 corosync 服务在多个集群节点上终止,则重复或不会传送到应用程序。这个版本应用了一系列修正这些 bug 的补丁,以便 corosync 不再在这种情况下丢失或重复信息。
- BZ#915490
- corosync-fplay 工具可能会以分段错误终止,或者在 corosync fdata 文件损坏时导致行为无法预计。在这个版本中,corosync-fplay 已被修改来检测代码中的循环,并正确验证 fdata 文件。为了避免出现数据被损坏的另一个原因,corosync 现在还阻止其子进程记录。因此,corosync 不再会在这种情况下崩溃或变得无响应。
- BZ#915769
- 如果 corosync.conf 文件中的服务部分不包含服务名称,则 corosync 会以分段错误终止或拒绝启动未知服务。在这个版本中,corosync 可以正确地验证 name 键,如果没有找到服务名称,则返回错误信息并正常退出。
- BZ#916227
- 当 corosync 服务在服务初始化完成后收到退出请求(SIGINT 信号)时,它无法正确处理的情况。因此,corosync 变得无响应,并忽略除 SIGKILL 之外的所有信号。在这个版本中,添加了一个信号,以确保 corosync 在这种情况下安全退出。
- BZ#922671
- 当运行使用 Corosync Inter-process 通信(IPC)库的应用程序时,allocation () 函数中的一些消息会丢失或重复。有了这个更新,corosync 会正确地验证 allocation_put ()函数的返回值,在 IPC 环缓冲中返回正确的剩余字节数,并确保 IPC 客户端正确通知环缓冲中实际消息数。assigned ()函数中的消息不再丢失或重复。
- BZ#924261
- 有时,当尝试使用 "corosync-cfgtool -H" 命令关闭 corosync 服务失败时,并返回 CS_ERR_TRY_AGAIN 错误代码,后续的关闭尝试会始终失败,并显示 CS_ERR_EXISTS 错误。corosync-cfgtool 工具已被修改来自动重试 shutdown 命令,Corosync 的 Cfg 库现在允许处理多个后续关闭调用。"corosync-cfgtool -H"命令现在可以按预期工作,即使在大量载入的集群节点上也是如此。
- BZ#947936
- 如果 corosync.conf 文件的 uidgid 部分包含不存在的用户或组,corosync 不会显示任何错误。底层代码已被修改,corosync 现在可以正确地验证 getpwnam_r 系统调用返回的值,并在这种情况下显示适当的错误消息。
- BZ#959184
- 如果 IPC 客户端在连接握手的特定时间段中退出,corosync 主进程会收到 SIGPIPE 信号并终止。在这个版本中,SIGPIPE 信号由 sendto ()函数正确处理,corosync 主进程不再在这种情况下终止。
- BZ#959189
- 如果 corosync 进程已打开了大量 confdb IPC 连接,则 corosync 进程可能会变得无响应,方法是发送 SIGINT 信号或使用 corosync-cfgtool 程序。这个版本修改了 corosync 代码,以确保所有与配置和统计数据库在 corosync 退出时都关闭,以便 corosync 能够按预期退出。
功能增强
- BZ#949491
- corosync 守护进程现在会检测 corosync 主进程没有长时间调度,并将相关消息发送到系统日志。
- BZ#956739
- 为了提高问题检测的过程,corosync-blackbox 命令的输出现在包含事件的时间戳。此功能与后向兼容,以便正确处理之前版本的 corosync 中的输出(fdata)。
8.22. cpupowerutils
程序错误修复
- BZ#886225
- 在以前的版本中,cpupowerutils 软件包中的一些命令缺少手册页。添加了 turbostat、x86_energy_perf_policy、cpufreq-bench 和 cpufreq-bench_plot.sh 命令的手册页,从而解决了这个问题。
- BZ#886226
- 如果非 root 用户试图运行 cpufreq-bench 工具,它会意外地终止分段错误,并且桌面上出现 ABRT 通知。在这个版本中,向用户显示一个警告信息,通知它们需要以 root 用户身份运行实用程序。
- BZ#886227
- 在此次更新之前,当 x86_energy_perf_policy 工具试图打开 /dev/cpupassphrase/msr/ 目录时,x86_energy_perf_policy 工具会失败。因此,会返回 "permission denied" 错误消息。在这个版本中,一个新的错误消息解释了命令需要 root 权限,x86_energy_perf_policy 会完全退出。
- BZ#886228
- 在以前的版本中,x86_energy_perf_policy 工具的交互式帮助比较短且混淆。帮助文本已扩展以阐明命令行选项的含义。
- BZ#914623
- 由于 "cpupower set -m" 命令缺少实现,在启动命令时会返回错误消息。在以前的版本中,这个消息错误地表示系统上不支持 sched-mc 工具。在这个版本中,信息被通知,以明确说明 sched-mc 尚未实现。
- BZ#914787
- 在以前的版本中,运行 "cpupower -v" 或 "cpupower --version" 命令会返回不正确的版本信息。这个程序错误已被解决,精选的 cpupower 组件现在会报告正确的 version-release 号。
功能增强
- BZ#852831
- Red Hat Enterprise Linux 包括 Intel turbostat v3.0 工具。实用程序用于读取当前的 CPU 内核频率和活跃的 C-states。
8.23. crash
8.23.1. RHEA-2013:1565 - 崩溃增强更新
功能增强
- BZ#902141
- 目前,使用 snappy 压缩格式的 makedumpfile 实用程序创建的转储文件现在可以被 crash 工具读取。snappy 格式适用于需要稳定性能的崩溃转储机制,以防出现企业应用的使用情况。
- BZ#902144
- 在这个版本中,crash 工具可由 crash 工具读取使用 LZO 压缩格式的 makedumpfile 工具创建的转储文件。对于随机化数据,LZO 压缩格式非常快速且稳定。
- BZ#1006622
- 在这个版本中,增加了对 makedumpfile 工具创建的压缩转储文件的支持,这些文件在具有物理内存需要超过 44 位的系统上生成的。
- BZ#1017930
- 在这个版本中解决了在 KVM 客户机转储文件中由 bt 命令生成的有问题的 panic-task backtraces 的问题。现在,当客户机操作系统出现问题时,bt 命令会显示 trace。
- BZ#1019483
- 在这个版本中修复了在初始化过程中有 255 个或更多 CPU 的系统上,使用 set 命令、ps 命令以及显示由任务地址、PID、CPU 和命令名称组成的 per-task 标头的所有命令都显示 CPU 号的问题。如果没有补丁,对于 CPU 255,sys 命令会显示"NO_PROC_ID",其他命令会显示 CPU 编号的"-";对于 CPU 号大于 255,垃圾值将显示在 CPU number 字段中。
8.24. crash-gcore-command
错误修复
- BZ#890232
- 由于 Red Hat Enterprise Linux 6 内核中的向后移植 madvise/MADV_DONTDUMP 更改,VDSO (虚拟动态链接共享对象)和 vsyscall 页面在生成的进程内核转储中缺少。在这个版本中,VDSO 和 vsyscall 页面始终包含在生成的进程内核转储中。
8.25. createrepo
程序错误修复
- BZ#877301
- 在以前的版本中,如果文件不存在,则时间戳检查不会通过。因此,空存储库被错误地标记为最新,"createrepo --checkts"命令不会对空存储库执行任何操作。在这个版本中,缺少的文件被视为失败,而不是通过。现在,当在空仓库上调用时,"createrepo --checkts"命令可以正确地创建一个新的存储库。
- BZ#892657
- --basedir、--retain-old-md 和 --update-md-path 选项仅在 createrepo 工具帮助消息中报告,而不是在 man page 中报告。在这个版本中,在帮助消息和 man page 中都会正确记录手册页和选项。
8.26. cronie
程序错误修复
- BZ#697485
- 在以前的版本中,在调用 popen ()系统功能前,crond deamon 不会丢弃用户权限的数据。因此,当非 root 用户调用函数时,更改权限的警告会被写入 /var/log/crond 文件中。在这个版本中,crond 已被修改为在调用 popen ()前丢弃用户权限。因此,在这种情况下不再记录警告。
- BZ#706979
- 在这个版本中,cron 配置文件的文件权限已更改为只有 root 用户可读。
- BZ#733697
- 在此次更新之前,cron init 文件中重启的定义不正确。因此,重启 crond 守护进程时会错误地报告失败。init 文件已被修复,在 crond 重启后不再显示冗余失败信息。
- BZ#738232
- 挂载在轻量级目录访问协议(LDAP)服务器或网络文件系统(NFS)上的主目录的 Cron Job 通常会被拒绝,因为作业被标记为孤立(通常是因为 NIS 和 LDAP 服务器无法访问时)。在这个版本中,会创建一个孤立项的数据库,并且 cron 作业会如预期执行。
- BZ#743473
- 在这个版本中,过时的注释已从 /etc/cron.hourly/0anacron 配置文件中删除。
- BZ#821046, BZ#995089
- 由于 cron 对时区的支持错误,计划的作业多次执行。只有当时 spring 更改期间,这个程序错误的效果才可见。这个程序错误已被解决,现在会在时间更改过程中正确执行作业。
- BZ#887859
- 在这个版本中,在 ana crontab man page 中修复了显示 anacron 表设置的错误示例。
- BZ#919440
- 在以前的版本中,crond 守护进程不会检查守护进程的现有锁定。因此,crond 的多个实例可以同时运行。锁定机制已被更新,并一次性运行多个 cron 实例,不再有可能运行。
- BZ#985888
- 在此次更新之前,crond 守护进程不会读取 $LANG 设置。因此,cron 作业没有使用系统范围的 $LANG 设置运行。这个 bug 已被修复,cron 任务现在按预期使用 $LANG。
- BZ#985893
- 在以前的版本中,crond 守护进程使用 putenv 系统调用,这可能会导致 crond 意外终止并出现 segmentation 错误。在这个版本中,putenv ()已被 setenv ()系统调用替代,从而防止 segmentation 错误。
- BZ#990710
- 在此次更新之前,PATH 变量可由 cron 或 crontable 设置,但无法通过 PAM 设置来更改。在这个版本中,可以使用 PAM 设置来更改 PATH。现在,如果使用 "-P" 选项,则 PATH 现在可以从环境中继承。
- BZ#1006869
- 在以前的版本中,当非 root 用户试图重启 crond 守护进程时,会返回不正确的错误代码。在这个版本中,在上述情况下会返回一个正确的代码。
功能增强
8.27. cvs
错误修复
- BZ#671460
- 当 CVS 客户端尝试建立与 DNS 负载均衡的集群节点的 GSSAPI 验证的连接时,身份验证会失败,因为每个节点都有唯一的主机名。在这个版本中,GSSAPI CVS 服务器已被修改,以搜索与 "cvs" 服务和任何主机名匹配的 Kerberos 密钥。因此,CVS 服务器现在可以使用 GSSAPI 验证客户端,即使服务器的主机名与域名不匹配,因此 Kerberos 主体主机名部分,适用于所有集群节点。建议 CVS 服务器管理员将两个 Kerberos 主体部署到每个节点:与节点的主机名匹配的主体,以及与集群域名匹配的主体。
功能增强
- BZ#684789
- 在以前的版本中,CVS 服务器不会将客户端地址传递给可插拔验证模块(PAM)系统。因此,无法通过带有 PAM 系统的网络地址来区分客户端,系统无法使用客户端地址进行身份验证或授权目的。在这个版本中,客户端网络地址作为远程主机项(PAM_RHOST)传递给 PAM 子系统。另外,终端项目(PAM_TTY)被设置为 dummy 值 "cvs",因为有些 PAM 模块无法使用未设置的值。
8.28. device-mapper-multipath
程序错误修复
- BZ#975676
- 在 sysfs 函数中解引用前,设备映射器多路径(DM-Multipath)没有测试 NULL 值的指针。因此,如果在多路径设备中的路径被删除时,multipathd 守护进程可能会意外终止并出现分段错误。在这个版本中,DM-Multipath 在 sysfs 函数中执行 NULL pointer 检查,在上述场景中不再崩溃。
- BZ#889429
- 在此次更新之前,multipathd 守护进程不会开始侦听 udev 事件(uevents),直到系统启动时发现的所有多路径路径都已配置。因此,multipathd 无法处理同时发现的路径。这个 bug 已被修复,multipathd 现在会在上述场景中处理所有路径。
- BZ#889441
- 由于为 multipathd 错误地排序 udev 规则,在使用 initramfs udev 规则创建多路径设备时,不会为多路径路径设置链接优先级。因此,/dev/disk/by-uuid/<uuid> 符号链接指向多路径路径,而不是多路径设备。在某些情况下,这可能会导致引导问题。在这个版本中,multipathd udev 规则已被正确排序,因此上述符号链接可以按预期指向多路径设备。
- BZ#902585, BZ#994277
- 在以前的版本中,DM-Multipath 没有为 sysfs "state" 属性分配足够空间。因此,当路径切换到 "transport-offline" 状态时,会触发缓冲区溢出,从而导致登录到系统日志。另外,DM-Multipath 无法正确处理 "quiesce" 状态的路径,这会导致不必要的路径失败。在这个版本中,DM-Multipath 分配足够的空间来存储 sysfs "state" 属性的所有有效值。"quiesce"状态的路径现在移到 "pending" 状态,这可防止路径失败。
- BZ#928831
- 在以前的版本中,DM-Multipath 在设置前不验证内核是否支持 "retain_attached_hw_handler" mpath 目标功能。因此,设置了 "retain_attached_hw_handler" 的多路径设备无法在没有此功能支持的旧内核的机器上工作。有了这个更新,DM-Multipath 会在设置前检查内核是否支持 "retain_attached_hw_handler" 功能。多路径设备现在可以在使用较新版本的 DM-Multipath 的系统中正常工作。
- BZ#995251
- 在某些设置中,如果目标控制器报告目标端口的非对称访问状态为"不可用",则冗余磁盘阵列控制器(RDAC)不会将路径标记为 down。因此,multipathd 守护进程会重复尝试将 I/O 发送到不可用的路径。这个 bug 已被修复,multipathd 不再将 I/O 发送到不可用的路径。
- BZ#1011341
- 在以前的版本中,kpartx 工具在为 MS-DOS 分区表创建分区时不会考虑该设备的实际扇区大小,假设每个扇区的固定大小为 512 字节。因此,如果扇区大小为 4 KB 的设备使用了 MS-DOS 分区表,则 kpartx 创建了正确大小的 1/8 个分区。在这个版本中,kpartx 验证设备的扇区大小,并在设备使用 MS-DOS 分区表时计算正确的分区大小。
- BZ#892292
- 当显示指定多路径设备的多路径拓扑时,DM-Multipath 不必要的获取所有配置的多路径设备的所有多路径路径的 WWID。因此,"multipath -l"命令需要比预期更长的时间完成,特别是在包含大量多路径设备的系统中。这个行为已被更改,当显示指定多路径设备的拓扑时,multipath 命令现在只获取属于这些设备的路径的 WWID。
- BZ#974129
- 在设置 dev_loss_tmo 选项前,DM-Multipath 之前设置 fast_io_fail_tmo 配置选项。但是,一个 fast_io_fail_tmo 的新值不能大于或等于 dev_loss_tmo 的当前值。因此,因为上述限制,当增加选项和 sysfs 的值时,因为上述限制导致设置 fast_io_fail_tmo,即使 dev_loss_tmo 无法设置为新值。在这个版本中,如果 fast_io_fail_tmo 的新值太大,DM-Multipath 会将它设置为最高的有效值,即 dev_loss_tmo 减一的当前值。当同时设置时,fast_io_fail_tmo 和 dev_loss_tmo 选项会首先增加 dev_loss_tmo。
- BZ#889987
- 当设置了 detect_prio 选项时,DM-Multipath 不会在设备上设置 AULA prioritizer 前验证存储设备是否支持非对称逻辑单元访问(AULA)。因此,如果设备不支持 AULA,multipathd 无法检测到路径的 AULA 优先级,并将错误消息提供给系统日志。这个程序错误已被解决,在存储设备上设置 AULA 优先级前,DM-Multipath 现在会验证是否使用 AULA 优先级设置路径。
- BZ#875199
- 由于 NULL pointer dereference 错误,multipathd 在删除到多路径设备失败的路径时,multipathd 可能会以分段错误终止。在这个版本中,向代码添加了一个 NULL pointer 测试,防止 multipathd 在这个场景中失败。
- BZ#904836
- 为 GUID 分区表(GPT)创建分区时,kpartx 工具不会考虑扇区大小超过 512 字节的设备的实际扇区大小。因此,kpartx 创建的分区与实际设备分区不匹配。在这个版本中,kpartx 可以正确地计算创建的分区的大小,以匹配存储设备的实际块大小。
- BZ#918825
- kpartx 工具没有正确释放为回送设备分配的文件描述符,从而导致文件描述符泄漏。在这个版本中修正了 kpartx 代码,kpartx 在释放回环设备后不再保留文件描述符。
- BZ#958091
- 当 multipath 命令加载具有读/写权限的多路径设备映射时,多路径设备可能会被错误地设置为只读访问权限。这是因为 multipath 命令总是重新重新载入具有只读权限的映射表,即使失败没有被 EROFS 错误造成的。在这个版本中,只有在第一次负载尝试失败时,多路径才会正确重新载入具有只读权限的多路径设备,并显示 EROFS 错误。
- BZ#986767
- 在以前的版本中,DM-Multipath 不会阻止将多路径设备创建到 tapdev 设备,因为意外的路径格式无法受到多路径 I/O 的影响。因此,如果在 tapdev 设备上创建多路径设备,multipathd 会在 tapdev 设备从系统中删除时终止。在这个版本中,tapdev 设备会被默认列入黑名单,这个问题将不再发生。
功能增强
- BZ#947798
- 在这个版本中,在 /etc/multipath.conf 文件中添加了一个新的默认关键字 "reload_readwrite"。如果设置为 "yes",multipathd 会侦听路径更改事件,如果路径对目标存储有读写访问权限,multipathd 会重新加载它。这允许多路径设备在所有路径都有对存储进行读写访问权限时,自动授予读写权限,而不必手动干预。
- BZ#916667
- multipathd 守护进程现在包含目标 SCSI 存储设备的主号和次号,以及路径名称到路径的添加和删除消息的名称。这可以更好地将路径与特定多路径设备关联。
- BZ#920448
- 为了保持多路径设备的命名一致性,DM-Multipath 现在设置最小的可用用户友好名称,即使 /etc/multipath/bindings 文件已被手动编辑。如果无法确定最小用户友好的名称,DM-Multipath 会保留之前的行为,并将多路径设备符号链接名称设置为下一个可用最大名称
- BZ#924924
- 一个新的默认参数 "replace_wwid_whitespace" 已添加到 /etc/multipath.conf 文件中。如果设置为 "yes",则默认配置部分中的 scsi_id 命令返回 WWID,所有应用的 SCSI 设备都会以下划线替换。
8.29. device-mapper-persistent-data
错误修复
8.30. dhcp
8.30.1. RHBA-2013:1572 - dhcp 程序错误修复更新
程序错误修复
- BZ#996518
- 在以前的版本中,在定义了别名接口和共享网络的 InfiniBand 网络接口卡(NIC)上启动时,dhcpd 守护进程或 dhclient 工具会意外终止并出现分段错误。因此,dhcpd 和 dhclient 无法与 InfiniBand NIC 的不同子网中的别名接口一起使用。现在,一个补丁已被用来解决这个问题,在这种场景中 dhcpd 和 dhclient 都不会崩溃。
- BZ#902966
- 在此次更新之前,如果某些 IPv6 地址不在 range6 语句中 subnet6 声明的子网范围内,DHCPv6 服务器会错误地提供不是来自客户端的子网的地址。已修复 range6 语句解析代码,以检查其地址是否属于子网,其中声明了 range6 语句。在这个版本中,如果 range6 语句不正确,DHCPv6 服务器现在无法启动并带有错误消息。
- BZ#863936
- 在以前的版本中,如果 dhcrelay 通过没有分配任何 IPv4 地址的接口接收数据包,DHCP4 转发代理(dhcrelay)会意外终止并出现分段错误。在这个版本中,dhcrelay 会检查接口是否在进一步处理接收的数据包前分配有地址,中继代理不再在此场景中崩溃。
- BZ#952126
- 在以前的版本中,当来自 DHCPv6 客户端的 DHCPv6 请求时,DHCPv6 服务器会将回复发回到消息的源端口,而不是将其发送到 UDP 端口 546,这是 IPv6 的标准。因此,客户端会对不正确的端口获得回复。DHCPv6 服务器代码中的回复处理已被修复,服务器现在会向 UDP 端口 546 发送回复。
- BZ#978420
- 在以前的版本中,当通过 Object Management API (OMAPI)操作对象时,dhcpd 守护进程管理的内存分配会错误地管理内存分配。因此,在 dhcpd 中发现几个内存泄漏。在这个版本中,内存分配管理已被修复,dhcpd 不再在此场景中泄漏内存。
- BZ#658855
- 在此次更新之前,当 dhclient 实用程序获取包含"next-server"选项的租期时,dhclient 不会向 dhclient-script 环境公开该选项。因此,NetworkManager 无法使用 dhclient 租期中的"next-server"选项。这个 bug 已被修复,dhclient 现在可以正确地公开 "next-server" 选项,NetworkManager 可以使用 dhclient 租期中的选项。
- BZ#919221
- 在以前的版本中,dhcpd 服务器无法正确处理包含两个或多个 key 语句的区域定义的解析。因此,dhcpd 返回有关内部不一致的错误消息。zone 语句解析代码已被修复;此场景中 dhcpd 报告的错误消息现在更为精确,表示区域有多个密钥定义。
- BZ#1001742
- 在以前的版本中,当 dhclient 工具使用多个接口在 IPv6 下运行时,只有最后一个启动的实例被配置,而其他在 lease-time 过期后会丢失连接。因此,dhclient 的最后一个启动实例会接收所有 DHCPv6 数据包,而其他实例无法与服务器通信。在这个版本中,dhclient 绑定到指定的接口,多个 dhclient 实例会正确通信。
8.31. dovecot
错误修复
- BZ#1010279
- 由于 dovecot 的 SSL 参数生成器中有一个错误,因此在安装 dovecot 软件包时,启用了 FIPS 模式的 Red Hat Enterprise Linux 6 安装可能会变得无响应。这个问题已被解决,现在会在上述场景中成功完成安装。
8.32. dracut
安全修复
- CVE-2012-4453
- 发现 dracut 创建的 initramfs 镜像为全局可读。本地用户可能会使用此缺陷从这些文件获取敏感信息,如 iSCSI 身份验证密码、加密的 root 文件系统 crypttab 密码或其他信息。
程序错误修复
- BZ#610462
- 在以前的版本中,mkinitrd 工具没有用户可以访问的 man page。在这个版本中,添加了 mkinitrd (8)手册页。
- BZ#720684
- 在以前的版本中,dracut 工具没有使用 "--yes" 选项调用 "lvchange" 命令。因此,引导 LVM 快照时需要原始逻辑卷名称(rd_LVM_LV)的规格。在这个版本中,使用 "--yes" 选项调用 "lvchange",引导 LVM 快照现在更直观。
- BZ#857048
- 在此次更新之前,dracut 工具会在不需要遵循每个重定向的情况下,将符号链接从系统复制到 initramfs。因此,initramfs 可能包含过时的符号链接,从而导致系统无法引导。这个程序错误已被解决。dracut 现在可以正确地复制符号链接重定向,initramfs 包含与实际系统相同的布局,在这种情况下不再会出现引导问题。
- BZ#886194
- 在设置加密设备时,dracut 工具不会考虑 /etc/crypttab 文件的所有参数。因此,/etc/crypttab 中的选项和文件名在 initramfs 中无效。在这个版本中,在设置加密设备时,dracut 将选项和文件名传递给 cryptsetup 工具,现在可以正确地应用 /etc/cryppttab 中的选项和文件。
- BZ#910605
- 在以前的版本中,dracut 工具需要在内核命令行中使用互联网小型计算机系统接口(iSCSI)引导。因此,在不需要网络配置的情况下,无法使用 iSCSI 引导。现在, dracut 会启动 iSCSI 服务,无论内核命令行中的网络配置参数是什么,且上面描述的问题不再发生。
- BZ#912299
- 在以前的版本中,dracut 工具使用 grep 工具,而无需取消设置 "GREP_OPTIONS" 环境变量。因此,如果在调用 yum 或运行 dracut 时用户设置了 GREP_OPTIONS,grep 无法正常工作。在这个版本中,dracut 会取消设置这个变量的 GREP_OPTIONS,用户设置不会影响 dracut 的正确操作。
- BZ#916144
- 在此次更新之前,多路径配置文件总是包含在 initramfs 中,即使 root 设备不是多路径设备。因此,在更改多路径配置时,管理员必须在重启前更新 initramfs。当 root 设备是多路径设备时,dracut 工具已被修复,仅在 root 设备是多路径设备时包括多路径配置。另外,管理员可以分割 initramfs 中使用的 root 设备的配置。目前,dracut 可以识别:
- /etc/multipath-root.conf
- /etc/multipath-root/*
- /etc/xdrdevices-root.conf
这些文件将在 initramfs 中使用,如下所示:- /etc/multipath.conf
- /etc/multipath/*
- /etc/xdrdevices.conf
如果管理员不希望复制整个配置,则 initramfs 中只能包含 root 设备的特定多路径配置。 - BZ#947729
- 在以前的版本中,当在实时镜像中使用内核的 Red Hat Enterprise Virtualization Hypervisor 打包时,在初始引导过程中需要验证的内核的路径无法正常工作。因此,联邦信息处理标准(FIPS)模式的内核的校验和测试会失败,系统没有引导。在这个版本中,dracut-fips 模块还在不同的路径中查找内核镜像,并使用 initramfs 中的校验和文件检查这些路径。因此,使用 FIPS 模式引导安装现在会检查正确的内核镜像,如果校验和正确,系统将继续以 FIPS 模式引导。
- BZ#960729
- dracut 工具没有将 xhci-hcd 内核模块包含在 initramfs 镜像中。因此,内核无法识别早期引导阶段中的 USB 3.0 设备,并且无法从 USB 3.0 磁盘挂载 root 文件 ystem。在这个版本中,dracut 在 initramfs 中包含 xhci-hcd 驱动程序,系统可以从 USB 3.0 磁盘引导。
- BZ#1011508
- 在以前的版本中,如果内核命令行上没有指定 "biosdevname=1" 参数,则 dracut 实用程序在所有机器上禁用 biosdevname 网络接口重命名。因此,在 Dell 计算机上,initramfs 中使用的接口没有自动 biosdevname 名称,即使 biosdevname 接口稍后在引导过程中处于活跃状态。在这个版本中,如果参数设置为 "0",则 dracut 只会禁用 biosdevname。对于非 Dell 机器,biosdevname 现在仅在内核命令行上指定了 "biosdevname=1" 时重命名接口,Dell 计算机在 initramfs 中具有名为 interfaces 的 biosdevname。
- BZ#1012316
- 在以前的版本中,在 10GBaseT Twin Pond 适配器上激活光纤通道(FcoE)所需的时间太长。因此,在等待链接上线的过程中 dracut timed out 调用的 fipvlan 工具会失败。在这个版本中,使用参数调用 fipvlan,以等待 30 秒以便链接启动,问题不再发生。
- BZ#1018377
- 在以前的版本中,当 dracut 工具运行 ldd 工具时,ldd 会将其输出转发到 cat 工具,以使用 cat 的 SELinux 权限来显示输出。因此,如果 ldd 将输出转发到 cat,并且 cat 会进一步转发输出,并且管道读取器提前退出,cat 会收到"EPIPE"信号,并将其报告给标准错误输出。在这个版本中,dracut 将 ldd 调用的标准错误重定向到 /dev/null 文件,在这种情况下会隐藏 cat 的错误消息。
功能增强
- BZ#851666
- dracut 工具现在支持在 initramfs 中绑定网络接口。可使用以下格式在内核命令行中指定绑定参数:
bond=<bondname>[:<bondslaves>:[:<options>]]
这会在 <bondslaves> 之上设置 <bondname> 绑定设备。如需更多信息,请运行 "modinfo bonding" 命令。 - BZ#1012626
- 美国国家标准与技术研究院(NIST)现在要求将 FIPS 模块定义为加密系统。因此,当安装了 dracut-fips rpm 软件包时,这个更新会添加 /etc/system-fips 文件标记。它为 FIPS 产品提供了一个稳定的文件位置,供库和应用程序使用。
8.32.2. RHBA-2013:1747 - dracut 程序错误修复更新
程序错误修复
- BZ#1029844
- 在 FIPS 模式中,只有在 /etc/system-fips 文件存在时才进行二进制文件的自我检查。在此次更新之前,dracut 工具不会复制初始 ram 文件系统(initramfs)中的 /etc/system-fips 文件和一些校验和文件。因此,对解密分区所需的工具进行自我检查没有完成,工具会意外终止。这个 bug 已被修复,dracut 现在复制 initramfs 中所有需要的文件,带有加密磁盘的系统现在可以在 FIPS 模式中成功引导。
- BZ#1029846
- 当在 live ISO 镜像中以 FIPS 模式引导时,dracut 会在错误的地方搜索内核镜像的校验和文件。因此,引导过程会失败。在这个版本中,校验和文件的路径已被修正,实时 ISO 镜像现在可以按预期以 FIPS 模式引导。
8.33. e2fsprogs
程序错误修复
- BZ#922847
- 在以前的版本中,e2fsck 工具无法检测与扩展树中重叠的 interior或叶节点相关的不一致。因此,一些 ext4 扩展树损坏不会被 e2fsck 检测或修复,但内核在运行时检测到它们。在这个版本中,e2fsck 能够按预期检测和修复上述问题。
- BZ#994615
- 在以前的版本中,e2fsck 工具错误地检测到未初始化的文件结束(EOF)无效。因此,e2fsck 将预先分配的块标识掉了 EOF。现在,e2fsck 已被解决,e2fsck 可以正确地识别未初始化的扩展。
- BZ#873201
- resize2fs 工具无法正确处理 ext4 文件系统的大小调整到较小的大小。因此,如果在调整大小过程中移动包含许多扩展的文件,则它们可能会被破坏。在这个版本中,当移动包含多个扩展的文件时,resize2fs 会维护一个一致的扩展树,在上述场景中,这些文件不再被破坏。
- BZ#974975
- 在以前的版本中,当将 ext4 文件系统大小调整为较小的大小时,resize2fs 工具无法正确重新定位内节点和块位映射。因此,当位映射没有在新文件系统大小中移动位时,一些文件系统会被破坏。现在,提供了一个补丁来解决这个程序错误,resize2fs 现在会在上述场景中维护一致的文件系统。
- BZ#885083
- 在以前的版本中,e2fsck 工具无法正确存储有关文件系统错误的信息。因此,日志中的条目有时无法正确传播到文件系统超级块。这个程序错误已被解决,e2fsck 现在可以按预期处理所有文件系统错误。
- BZ#895679
- 在以前的版本中,在处理 ext4 文件系统时,e2fsck 工具不会清除错误日志。因此,e2fsck 在 ext4 文件系统超级块中存储了详细的错误信息,并在挂载时定期返回它。在这个版本中,e2fsck 完成后会清除错误日志,不再返回冗余错误消息。
- BZ#927541
- 在此次更新之前,filefrag 工具偶尔会报告不正确的扩展计数。现在,一个补丁已被用来解决这个问题,扩展可以被正确计算。
8.34. efibootmgr
错误修复
- BZ#924892
- 在以前的版本中,当将无效的值传递给 "efibootmgr -o" 命令时,命令无法识别问题,并将不正确的值传递给其他功能。这可能会导致几个复杂情况(如命令变得无响应)。在这个版本中,efibootmgr 已被修改为测试无效输入。因此,上面提到的场景中会显示错误消息。
8.35. emacs
8.35.1. RHBA-2013:1088 - emacs 程序错误修复更新
错误修复
- BZ#678225
- Lucida Typewriter 和 Lucida Console fonts 不适用于 Red Hat Enterprise Linux 6 中的 Emacs 23.1。因此,Messages buffer: "set-face-attribute: Font not available" 中会显示以下出错信息。在这个版本中,在这种情况下不会显示任何错误消息,所选的字体可用于显示缓冲区内容。
8.36. environment-modules
程序错误修复
- BZ#918540
- 更新 environment-modules 软件包时,对 /usr/share/Modules/init/.modulespath 配置文件的更改会被升级静默替换。该文件现在在 spec 文件中设置标记为 %config (noreplace),因此会在更新之间保留。
- BZ#929007
- csh 和 tcsh 的环境变量使用 "test" 命令,而不指定 PATH 变量。这可能会导致意外行为作为名为"test"的用户二进制文件被运行。在这个版本中,通过完整路径调用"test"二进制文件。不再通过调用随机测试二进制文件导致的错误。
- BZ#953198
- 更新 environment-modules 软件包时,不会保留 /etc/profile.d 中环境脚本的更改。在这个版本中,这些脚本已标记为配置脚本,因此在更新之间会保留它们。
8.37. esc
8.37.1. RHBA-2013:1698 - esc 程序错误修复更新
程序错误修复
- BZ#920826
- 当系统上安装了 XULRunner 运行时环境的最新 17 系列版本时,ESC 工具不会启动。这个版本包括必要的更改,以确保 ESC 与 XULRunner 的最新版本正常工作。
- BZ#961582
- ESC 工具可以手动启动,或者在插入卡时自动启动。在以前的版本中,当 ESC 自动启动时,会创建 ~/.redhat/ 目录,并使用读、写和执行权限授予。但是,此目录中的一些文件具有读写权限。这个更新解决了这个不一致的问题,现在在上述场景中正确设置了权限。
- BZ#981156
- 由于 esc.desktop 文件中的一个错误,错误消息已记录在 /var/log/messages/ 目录中。这个版本应用补丁来修复这个错误,不再返回错误消息。
8.38. evolution
安全修复
- CVE-2013-4166
- 在加密电子邮件时 Evolution 选择 GnuPG 公钥的方式中发现了一个安全漏洞。这可能会导致电子邮件使用属于预期收件人之外的公钥加密。
错误修复
- BZ#665967
- 使用 Microsoft Exchange 2010 服务器时,A Exchange Calendar 无法获取"Free"和"Busy"信息,因此无法显示这些信息。这是因为 Microsoft Exchange 2010 服务器对"Free"和"Busy"信息获取使用更严格的规则。在这个版本中,openchange 软件包中相应的代码已被修改,因此 "Free" 和 "Busy" 信息现在与 Microsoft Exchange 2010 服务器上的获取规则相关。现在,在 Exchange Calendar 中现在可以按预期显示"Free"和"Busy"信息。
8.39. fcoe-target-utils
程序错误修复
- BZ#854708
- 由于将设备标记为 in-use 的错误,尝试映射之前映射的块后备存储将失败。在这个版本中,块后备存储的映射会被正确发布,重新映射块设备现在可以成功。
- BZ#880542
- 在以前的版本中,当 fcoe-target 守护进程停止时,内核会意外终止。已提供了一个补丁来修复这个程序错误,内核现在不再崩溃。
- BZ#882121
- 在以前的版本中,目标会错误地报告对序列级别错误恢复的支持。因此,中断 FCoE 目标和 bnx2fc initiator 之间的连接可能会导致启动器错误执行序列级错误恢复,而不是交换级别错误,从而导致附加到目标的所有设备失败。这个程序错误已被解决,与 bnx2fc 启动器的连接现在可以在不影响其它设备的情况下中断。
- BZ#912210
- 在此次更新之前,python-rtslib 库中存在错误。因此,当在 targetcli 实用程序中创建 pscsi (SCSI 透传)存储对象时,python-rtslib 会返回回溯。库中的错误已被修复,pscsi 存储对象现已创建且无错误。
- BZ#999902
- 由于 fcoe-target-utils 软件包需要 fcoe-utils 命令行界面,且 s390x 架构不支持,fcoe-target-utils 无法在 s390x 上正常工作,因此已被删除。
8.40. fcoe-utils
错误修复
- BZ#903099
- 由于内核中存在一个错误,在使用 ixbge 适配器时销毁 N_Port ID Virtualization (NPIV)端口,fcoe 服务初始化脚本可能会在关闭时变得无响应。已应用初始化脚本补丁来首先销毁关联的虚拟端口,在上述场景中 fcoe 服务不再挂起。
功能增强
- BZ#981062
- readme 文件已更新,请注意,在 Red Hat Enterprise Linux 6 的默认安装中启用了文件系统自动挂载功能。
8.41. febootstrap
错误修复
- BZ#902478
- 在以前的版本中,当使用带有 "-g" 选项的 febootstrap-supermin-helper 时,命令无法正确设置补充组。因此,运行 libguestfs 的用户中的一些组会泄漏到设备构建过程中。在这个版本中,补充组会被正确设置。
8.42. fence-agents
程序错误修复
- BZ#872308
- 在以前的版本中,隔离代理文档没有提到如何将 fence_ipmilan 代理用于隔离设备 HP iLO 3。在这个版本中,在 fence_ipmilan (8)手册页中添加了此信息。
- BZ#896603
- 在以前的版本中,隔离代理 fence_cisco_ucs 没有遵循 "delay" 属性。这个程序错误已被解决,fence_cisco_ucs 会如预期等待适当的时间。
- BZ#978325
- 在以前的版本中,隔离代理 fence_cisco_ucs 在登录过程中没有正确使用超时,这可能会对成功登录的影响。在这个版本中,这个超时会被正确设置,用户可以通过标准配置方法自定义。
- BZ#978326
- 在以前的版本中,当主机名无法解析为 IP 地址时,隔离代理 fence_cisco_ucs 会失败,并显示回溯错误。在这个版本中,fence_cisco_ucs 使用适当的错误消息退出。
- BZ#978328
- 在以前的版本中,隔离代理 fence_scsi 没有为 pacemaker "unfence" 操作提供正确的元数据。在这个版本中,"unfence"操作只能在本地节点上运行。
- BZ#912773, BZ#994186
- 在以前的版本中,隔离代理 fence_scsi 不遵循 "delay" 属性。这个程序错误已被解决,fence_scsi 现在会等待适当的时间。因此,2 节点集群中的节点无法再相互隔离。
- BZ#959490
- 在以前的版本中,当使用带有 "-ssh" 选项的 fence_bladecenter 代理时,隔离代理还需要 "--password" 或 "--identity-file" 选项。但是,这个行为没有被记录。因此,当只使用带有 "--ssh" 选项的 fence_bladecenter 时,fence_bladecenter 会失败,并显示太通用的错误消息。这个 bug 已被修复,如果 fence_bladecenter 无法连接,则会显示更具体的错误消息。
- BZ#887349
- 在以前的版本中,fence_scsi (8)手册页没有提到 fence_scsi 正常工作所需的"unfence"操作。在这个版本中,在集群环境中有关"unfence"信息的注释已添加到 fence_scsi (8)手册页中。
- BZ#902404
- 在以前的版本中,当使用 fence_soap_vmware 隔离代理隔离 Red Hat Enterprise Linux 集群节点时,如果无法解析 IP 地址的主机名,代理会意外终止。在这个版本中,描述的场景中会显示正确的错误消息。
- BZ#905478
- 由于在 SSH 连接过程中对换行符的检测不正确,因此 fence_drac5 代理可以在隔离 Red Hat Enterprise Linux 集群节点时通过回溯终止连接。只有第一个隔离操作成功完成,但节点的状态没有正确检查。因此,隔离代理无法报告成功隔离。当"重新引导"操作被调用时,该节点只会关闭。在这个版本中,会正确检测到换行符,隔离可以正常工作。
- BZ#981086
- 在以前的版本中,fence_ipmilan "lanplus" 选项的描述不完整。这个版本提高了"lanplus"选项的描述,并包括了对其对安全性的影响的信息。
- BZ#1014000
- 在以前的版本中,VMware 隔离代理使用一个不安全的临时目录,本地攻击者可以利用这个目录覆盖运行隔离代理的任意本地文件。这个版本删除了对 python-suds 库的依赖,它容易受到符号链接攻击(CVE-2013-2217)的影响,VMware 隔离代理现在使用 mkdtemp 创建唯一的临时目录。
功能增强
8.43. fence-virt
程序错误修复
8.44. firstboot
错误修复
- BZ#876018
- 处理对两键对话框的响应的代码提示用户单击其中一个按钮。在点关闭按钮或按 Escape 键后,响应被忽略,安装后过程也会继续同意 Red Hat Enterprise Linux 6 中的最终用户许可协议(EULA)。在这个版本中,代码已被修改来关闭对话框并保留在底层屏幕上。因此,点关闭按钮或按 Escape 键可以正常工作。
8.45. foomatic
程序错误修复
8.46. fprintd
错误修复
- BZ#1003940
- 当可插拔验证模块(PAM)配置包含 pam_fprintd 模块时,PAM 会使用 glib2 功能,其中执行 dlclose ()函数来卸载 glib2 库。但是,此方法不适用于多线程应用程序。当进行 PAM 操作时,Red Hat Enterprise Linux 6 上的目录服务器在关闭阶段意外终止,因为它试图卸载 glib2 destructor,之前已由 fprintd 服务卸载。这个版本应用了补丁来修复这个程序错误,以便在 pam_fprintd 关闭时 fprintd 不再卸载 glib2。因此,在目录服务器关闭时,glib2 库会被卸载,因此服务器会正常关闭。
8.47. freeipmi
程序错误修复
8.48. ftp
8.48.1. RHBA-2013:0845 - ftp 程序错误修复更新
错误修复
- BZ#861113
- 在此次更新之前,当从具有提升权限的 shell 使用 FTP 客户端(通过 su 或 sudo 实用程序)时,它会错误地假设 UID 来自原始登录,而不是启动客户端的用户。因此,本地主目录不正确。在这个版本中,底层代码已被修改,以使用 getpwuid (3)实用程序函数调用正确获取登录凭证。现在,本地主目录会根据运行客户端的用户设置。
8.49. gcc
程序错误修复
- BZ#906234
- 由于用于读取令牌的小型本地缓冲区,因此 GCC (GNU Compiler Collection)可能会在程序中读取异常时触发堆栈保护器。缓冲区已被放大,因此可以在不损害内存的情况下读取死令牌。
- BZ#921758
- 在以前的版本中,当编译包含带有 "va_list" member 字段的 C++ 代码时,GCC 可能会意外终止。此类结构的初始化已被修复,GCC 不再在此类代码中崩溃。
- BZ#959564
- 在此次更新之前,当为带有 "__attribute__((ms_abi)) " 注解的函数取消回卷堆栈时,libgcc 工具可能会意外终止。这个程序错误已通过忽略未知列号的 unwind 数据来解决,libgcc 不再崩溃。
- BZ#967003
- 在以前的版本中,当处理 debug 语句时,GCC 可能会意外终止。这个程序错误已通过删除绑定到此类 debug 语句中的变量的值来解决,GCC 在上述场景中不再崩溃。
功能增强
- BZ#908025
- GCC 现在支持内联 assembler 代码内带有大括号和竖线的字符串。也就是说,'{', '}', 和 '|' 现在可以以 '%' 符号作为前缀。在这种情况下,它们不会被处理为 dialect delimiters,而是直接传递给 assembler。
8.50. gdm
8.50.1. RHBA-2013:1708 - gdm 程序错误修复更新
程序错误修复
- BZ#712959
- 当设置了 KDE 显示管理器(KDM)作为默认的显示管理器时,使用安装的 GNOME 登录到系统有时可能会导致 user-switch applet 中止。因此,除非重新载入 applet,否则无法切换用户。底层代码已被修改,以防止对多队列的负载进行干扰,因此用户交换小程序现在在此场景中可以更加灵活地崩溃。
- BZ#759174
- GDM 之前没有将 X 显示管理器控制协议(XDMCP)间接查询转发到适当机器的正确端口。因此,GDM 主机选择器无法正常工作,XDMCP 连接无法建立。在这个版本中,当重定向 XCDMCP 查询和 XDMCP 连接时,GDM 现在会使用正确的端口。
- BZ#785775, BZ#865832
- 在以前的版本中,GDMG 会在短时间内显示登录信息,以便有些用户无法读取信息。在这个版本中,增加了时间段的持续时间,这是在登录时显示的消息至少为 3 秒。
- BZ#795920
- 在读取"/var/cache/gdm/$USERNAME/"目录中 drmc 文件的缓存副本前,GDM 之前没有参考"~/.dmrc"文件的内容。在使用网络挂载的主目录的环境中,此行为可能会导致用户环境设置不正确或不一致,如默认的图形桌面会话或语言。这是因为在修改 "~/.dmrc" 文件前,对用户登录和注销的机器没有影响。在这个版本中,GDM 在 "/var/cache/gdm/$USERNAME/dmrc" 前读取 "~/.dmrc",以便对用户环境配置的更新可以生效。
- BZ#818074
- 当用户切换到已活跃的会话时,GDMG 会尝试清理临时内部资源两次。这会导致在系统日志中记录假的错误消息。底层代码已被修复,GDM 现在可以正确清理这些资源。
- BZ#844004
- 当 PreSession shell 脚本失败时,用户应该拒绝登录系统。GDM 以前会忽略 PreSession 失败,以便用户可以进入未授权的登录系统。在这个版本中修正了此行为,GDM 现在会在 PreSession 脚本失败时失败。
- BZ#861114
- GDM 根据身份验证消息的长度调整了登录窗口的宽度。如果身份验证消息很长,登录窗口变得不合理,因此显示文本在可见的屏幕中。在这个版本中,长验证信息会自动嵌套,登录窗口会保留预期大小,信息会被正确显示。
- BZ#874202
- 当用户从系统注销或切换运行级别时,gdm-smartcard-worker 扩展会意外终止,并显示分段错误。这个版本修改了 GDM 以确保 gdm-smartcard-worker 正常关闭。
- BZ#874707
- GDM 默认问候语没有以规范形式设置 LANG 环境变量。因此,在混合环境部署中,如包含 Mac OS X 机器的网络,非 Linux 系统无法正确识别 LANG 编码。在这个版本中,GDM 设置环境变量采用规范形式。
- BZ#953552
- 如果系统在没有智能卡支持的情况下启动,则 gdm-smartcard-worker 扩展会意外终止,并在启动时出现分段错误。gdm-smartcard-worker 中的相应代码已被修改,因此这个 GDM 扩展不再会在这种情况下崩溃。
- BZ#977560
- 当使用设置了 "disable_user_list=True" 选项的智能卡身份验证方法时,输入不正确的 PIN 禁用了所有进一步的智能卡登录,直到用户使用不同的验证方法成功登录为止。在这个版本中,可以正确地重置对话框窗口,并允许用户重复智能卡验证尝试。
- BZ#1006947
- 当在 IBM S/390 系统中引导到运行级别 5 时,GDMG 会发出一个警告消息,提示无法启动 X 服务器,这没有损害,但可能会导致用户造成混淆。底层 GDM 代码已被修改,不再试图在 IBM S/390 系统上启动 X 服务器,信息不再记录到系统日志中。
8.51. gegl
8.51.1. RHBA-2013:1021 - gegl 程序错误修复更新
错误修复
- BZ#620378
- 文档文件已安装可执行文件。因此,由于配置,测试工具会失败。要修复这个程序错误,可执行位已从文档文件和测试工具中删除,在上述场景中可以正常工作。
8.52. ghostscript
程序错误修复
- BZ#893775
- 由于复制 CID-keyed Type 2 字体的功能中有一个错误,因此文档转换有时会导致 ps2pdf 实用程序意外终止并出现分段错误。已提供了一个补丁来解决这个问题,以便函数现在可以正确复制字体,ps2pdf 在转换文档时不再崩溃。
- BZ#916162
- 由于 JBIG2 编码区域的 TPGDON 选项不支持,一些 PDF 文件没有正确显示。现在,提供了一个补丁来添加此支持,以便使用 TPGDON 选项的 PDF 文件现在可以正确显示。
- BZ#1006165
- 在以前的版本中,一些带有 incomplete ASCII base-85 编码镜像的 PDF 文件会导致 ghostscript 工具终止并显示以下错误:ID 中的 /SyntaxError当镜像以 "~" (tilde)结尾而不是 "~>" (tilde, right angle bracket)结尾时,会出现这个问题。虽然这是不正确的编码,但应用了上游补丁,但 ghostscript 现在处理这些 PDF 文件且无错误。
8.53. glib2
8.54. glibc
libc
)、POSIX 线程库(libpthread)、标准数数库(libm
)以及系统上多个程序使用的名称服务器缓存守护进程(nscd
)。如果没有这些库,Linux 系统无法正常工作。
安全修复
- CVE-2013-4332
- glibc 的内存分配器函数(pvalloc、valloc 和 memalign)中发现了多个整数溢出漏洞,导致基于堆的缓冲区溢出问题。如果应用使用了此类功能,则可能会导致应用崩溃或可能,执行具有运行应用的用户特权的任意代码。
- CVE-2013-0242
- 在与处理多字节字符输入的正则表达式匹配例程中发现了一个安全漏洞。如果应用程序使用了 glibc 正则表达式匹配机制,攻击者可以提供特殊制作的输入,在处理时,会导致应用程序崩溃。
- CVE-2013-1914
- 找到 getaddrinfo ()没有限制名称解析过程中使用的堆栈内存量。攻击者能够使应用程序解决攻击者控制的主机名或 IP 地址,可能会导致应用程序耗尽所有堆栈内存和崩溃。
程序错误修复
- BZ#1022022
- 由于 Red Hat Enterprise Linux 6.0 中 getaddrinfo ()系统调用的初始发行版本中存在一个缺陷,AF_INET 和 AF_INET6 查询从查询的名称返回为规范名称的 /etc/hosts 文件中解析。但是,这种行为不正确是仍被视为预期的行为。由于 getaddrinfo ()中的最近更改,AF_INET6 查询开始正确解析规范名称。但是,来自来自 /etc/hosts 文件的查询的应用程序会意外的此行为,因此这些应用程序可能无法正确运行。这个版本会应用一个修复,确保从 /etc/hosts 解析的 AF_INET6 查询始终以规范形式返回查询的名称。请注意,DNS 查找会被正确解析,并且始终返回正确的规范名称。正确修复 AF_INET6 查询来自 /etc/hosts 的解析功能可能会在以后的版本中应用;现在,由于缺少标准,红帽会建议 /etc/hosts 文件中的第一个条目,适用于被解析的 IP 地址,并被视为规范条目。
- BZ#552960
- AMD64、Intel 64 和 Intel P6 架构的 pthread_cond_wait ()和 pthread_cond_timedwait () 函数包含多个同步错误。因此,当多线程程序使用 priority-inherited mutex 来同步对条件变量的访问时,一些线程可能会在被 pthread_cond_signal ()函数或取消时输入死锁情况。在这个版本中解决了这些同步错误,在上述场景中线程死锁将不再发生。
- BZ#834386
- 在特定虚拟地址加载时,C 库安全框架无法处理动态加载的字符转换例程。这会导致在尝试使用动态加载的字符转换例程时因为分段错误意外终止。这个版本增强了 C 库安全框架,在任何虚拟内存地址中处理动态加载的字符转换例程,在上述场景中不再崩溃。
- BZ#848748
- 由于标准 C 库中的一个缺陷,库可能会分配无限数量的内存,并在处理损坏的 NIS 请求时最终意外终止。有了这个更新,标准 C 库已被修复,将 NIS 记录的大小限制为最大 16 MB,且库不再会在这种情况下崩溃。但是,如果这些映射超过最大 16 MB,则某些具有非常大 NIS 映射的配置可能无法正常工作。
- BZ#851470
- 在以前的版本中,如果没有挂载 proc (/proc/)文件系统,ttyname ()和 ttyname_r ()库调用会返回错误。因此,某些应用程序无法在 chroot 环境中正确运行。在这个版本中,如果 ttyname ()和 ttyname_r ()调用无法读取 /proc/self/fd/ 目录,则他们尝试从已知系统的设备(/dev 和 /dev/pts 目录)获取相应终端的名称,而不是立即返回错误。在 chroot 环境中运行的应用程序现在可以按预期工作。
- BZ#862094
- 标准 C 库中的一个缺陷会导致尝试释放没有使用 malloc ()函数分配的内存。因此,当加载需要动态加载程序来搜索非默认目录的共享库时,动态加载程序可能会意外终止。动态加载程序已被修改,以避免为没有使用 malloc ()分配的内存调用 free ()例程,且在这种情况下不再崩溃。
- BZ#863384
- 由于 getaddrinfo ()解析器系统调用中有一个缺陷,在某些情况下,getaddrinfo ()可以在某些情况下返回在请求 FQDN 结果时不是 Fully Qualified Domain Names (FQDN)的结果。使用 getaddrinfo ()的应用程序预期 FQDN 结果可能无法正确运行。解析器已被修复,在请求 FQDN 结果并且设置了 AI_CANONNAME 标志时,会如预期返回 FQDN 结果。
- BZ#868808
- 如果调用堆栈包含递归函数调用调用调用,则 backtrace ()函数没有在 AMD64 和 Intel 64 构架上正确打印调用帧。在这个版本中解决了这个行为,因此 backtrace ()现在会如预期打印调用帧。
- BZ#903754
- 前面包含名称"fedora"的调试信息可能会导致混淆,对于特定于 Fedora 的软件包,相应的软件包可能会被误认为。为避免这种混淆,软件包构建框架已被更改,以确保调试信息不再包含名称"fedora"。
- BZ#919562
- 打开和使用线程本地存储变量的动态库的程序可能会在由使用线程本地存储进行审核的模块进行分段错误而意外终止。在这个版本中,修改动态链接器来检测这种情况,在上述场景中不再崩溃。
- BZ#928318
- 当系统中缺少 /etc/resolv.conf 文件或不包含任何名称服务器条目时,getaddrinfo ()失败,而不是将 DNS 查询发送到本地 DNS 服务器。这个 bug 已被修复,getaddrinfo ()现在在这种情况下查询本地 DNS 服务器。
- BZ#929388
- 以前的修复是防止各种数学函数中的逻辑错误,包括 exp (), exp2 (), expf (), exp2f (), pow (), sin (), tan (), 和 rint (),为特定输入创建 CPU 性能回归。已分析性能回归问题,内核例程已优化,以提高 CPU 性能到预期级别。
- BZ#952422
- 在以前的版本中,使用 QReadWriteLocks 锁定机制的多线程应用程序可能会在负载过重时遇到性能问题。这是因为从 Qt 库重复调用的 sysconf ()函数无效。在这个版本中,通过缓存 _SC_NPROCESSORS_ONLN 变量的值改进了 sysconf ()的 glibc 实现,因此系统不再通过解析 /stat/proc 文件来花费大量时间。上述应用程序的性能以及请求 _SC_NPROCESSORS_ONLN 的值的应用程序应该显著提高。
- BZ#966775
- 对 math 库引入的浮点函数的准确性的改进(由 RHBA-2013:0279 公告引入),从而提高了这些功能的性能。在这个版本中,对性能损失回归问题进行了分析,并应用了相应的修复来保持当前的准确性,但降低了对可接受的级别的性能损失。
- BZ#966778
- 如果在 NIS 服务器中维护用户组并通过 NIS compat 接口查询,对包含大量用户的用户组查询可能会返回不完整的用户列表。在这个版本中解决了 compat 接口中的多个 bug,以便在上述场景中组查询现在返回正确的结果。
- BZ#970090
- 由于名称服务缓存守护进程(nscd)中的一个缺陷,在某些情况下会缓存返回的 DNS 查询,即使指定了 AF_UNSPEC 地址系列,并且 IPv4 和 IPv6 结果都存在。这个缺陷已被修正,nscd 现在可以正确地返回 IPv4 和 IPv6 会导致这种情况。
- BZ#988931
- 由于动态加载程序中的一个缺陷,加载程序尝试在加载预链接的动态应用程序时尝试写入内存中的只读页面。这会导致所有预链接的应用程序在启动过程中意外终止。动态加载程序中的缺陷已被修正,在这种情况下,预先链接的应用程序不会再崩溃。
功能增强
- BZ#629823
- 以前的 nscd 版本没有缓存 netgroup 查询。对于依赖系统配置中的网络组映射的用户,缺少 netgroup 缓存可能会导致性能不佳。在这个版本中,对 netgroup 查询缓存的支持被添加到 nscd 中。依赖于 netgroup 映射并使用 nscd 进行缓存的系统现在会缓存其 netgroup 查询,这可以提高大多数配置的性能。
- BZ#663641
- 在以前的版本中,如果用户希望调整为新线程创建的堆栈大小,则必须修改程序代码。在这个版本中,glibc 添加了一个新的 GLIBC_PTHREAD_STACKSIZE 环境变量,允许用户以字节为单位设置所需的默认线程堆栈大小。变量会影响使用 pthread_create ()函数和默认属性创建的线程。由于内存校准和某些其它因素,默认线程堆栈大小可能比请求的大小稍大。
- BZ#886968
- 动态加载程序现在与 GDB 协调,以提供一个接口,用于提高调试应用程序的性能,并具有非常大的载入库列表。
- BZ#905575
- glibc 软件包现在在 libm 库中为 pow ()和 exp ()函数提供四个静态定义 Tracing (SDT)探测。SDT 探测可用于检测对功能的输入是否会导致例程执行多精度慢路径。此信息可用于检测应用中调用 pow ()和 exp ()函数的性能问题。
- BZ#916986
- 添加了对 MAP_HUGETLB 和 MAP_STACK 标记的支持,以便与 mmap ()函数一起使用。其支持依赖于内核支持,调用 mmap ()的应用程序应始终检查函数的结果以确定调用的结果。
- BZ#929302
- 通过在 PowerPC 架构上调用 getcpu ()系统调用的虚拟动态共享对象(VDSO)实现来提高 sched_getcpu ()函数的性能。
- BZ#970776
- ESTALE 错误代码的错误字符串已更新为打印"Stale 文件句柄"而不是"Stale NFS 文件句柄",这可以防止混淆。错误字符串已转换为所有支持的语言。
8.55. glusterfs
程序错误修复
- BZ#998778
- 在以前的版本中,在 API 失败时,"errno"值没有正确设置。因此,使用 API 的应用程序的行为可能会不可预测。在这个版本中,在 API 失败时值会被正确设置,应用程序可以正常工作。
- BZ#998832
- 在以前的版本中,glusterfs-api 库处理使用 glusterfs-api 发送到应用程序的所有信号。因此,glusterfs-api 会错误地解析这个库没有使用的所有信号。在这个版本中,glusterfs-api 不再处理不使用的信号,以便正确解释此类信号。
- BZ#1017014
- 在以前的版本中,glfs_fini () 函数不会返回 NULL,即使 libgfapi 库成功清理所有资源。因此,尝试使用 "qemu-img create" 命令(使用 libgfapi )会失败。底层源代码已被修改,因此当 libgfapi 清理成功时,函数会返回 NULL,命令现在可以按预期工作。
功能增强
- BZ#916645
- glusterfs 软件包包含在 QEMU 中对 GlusterFS 的原生支持。这一支持允许使用 libgfapi 库来原生访问 GlusterFS 卷,而不是通过本地挂载的 FUSE 文件系统进行本地访问。这种原生方法提供了显著的性能改进。
8.56. gnome-screensaver
程序错误修复
- BZ#905935
- 在以前的版本中,当使用 virt-manager、virt-viewer 和 spice-xpi 应用程序时,用户无法在屏幕保存器启动后输入 gnome-screensaver 密码。这只有在虚拟机系统使用了 Compiz composting 窗口管理器时发生。用户释放鼠标光标后,然后按 键以输入密码,对话框窗口不接受任何输入。这是因为将窗口分配不正确到没有键盘 grab 的应用程序中。在这个版本中,窗口重点被正确分配给正确的位置,尝试输入 gnome-screensaver 密码不会在上述场景中失败。
- BZ#947671
- 在此次更新之前,在使用不支持 fade-out 功能的 X 服务器时,gnome-screensaver 工具可以正常工作。因此,当尝试关闭 monitor 时,gnome-screensaver 会意外终止。这个程序错误已被解决,gnome-screensaver 现在会检测到潜在的冻结故障,并恢复而不是崩溃。
8.57. gpxe
8.57.1. RHBA-2013:1628 - gpxe 程序错误修复更新
错误修复
- BZ#972671
- DHCP 服务器可以配置为使用 Pre-Boot Execution Environment (PXE)来使用 gPXE 实用程序启动虚拟机。在以前的版本中,当下一个服务器详情来自不同的 DHCP 服务器时,PXE 引导会失败。这个版本提供了一个补丁来修复这个程序错误,在上述场景中,PXE 引导现在可以正常工作。
8.58. grep
8.58.1. RHBA-2013:0977 - grep 程序错误修复更新
程序错误修复
- BZ#715295
- 对于某些正则表达式,DFA 分析可能会插入与原来相比的双"位置"。因此,没有足够的空间来插入所有位置,而 grep 可能会在某些正则表达式上意外终止。要解决这个问题,增加了空间分配,在上述场景中 grep 可以正常工作。
- BZ#797934
- 当固定字符串模式在不区分大小写的搜索处于活跃状态时为空时,grep 可能会意外终止。在这个版本中,这个问题单的检查已添加到代码中,grep 在上述场景中可以正常工作。
- BZ#826997
- 在以前的版本中,代码处理不区分大小写的搜索可能会改变字符串的字节大小,同时将其转换为小写。因此,grep 可能会截断某些输出字符串。要修复此错误,在转换为小写期间更改字节大小时,对 grep 代码进行了修改,以正确处理这样的情况。因此,不区分大小写的搜索可以正常工作,grep 不再截断其输出。
8.59. grub
程序错误修复
- BZ#851706
- 如果 GRUB 菜单条目的标题超过 80 个字符的行长度,则显示引导的剩余时间的文本不一致,因此显示不正确。溢出文本显示在新行中,整个文本在每一次传输一行移动一行。在这个版本中,文本被分成两行,只有第二行被重写为引导倒计时,因此 GRUB 对长菜单条目的行为正确。
- BZ#854652
- 当构建新版本的 grub 软件包时,GRUB 不会删除"make clean"命令上的 grub.info 文件。因此,在应用更新后,grub.info 文件不包含最新的更改。要解决这个问题,GRUB Makefile 已被修改,现在每个软件包构建被显式删除并生成 grub.info 文件。
- BZ#911715
- GRUB 代码不符合统一可扩展固件接口(UEFI)规格,且不会根据规格的要求禁用 EFI 平台的 watchdog 计时器。因此,如果 watchdog 在 5 分钟时间内没有禁用,则系统会重启,这是不必要的行为。应用了补丁,在 GRUB 初始化后立即禁用 EFI watchdog,以便 EFI 系统不再意外重启。
- BZ#916016
- 当使用 Open Virtual Machine Firmware (OVMF) BIOS 在 QEMU KVM 中引导系统时,GRUB 无法识别 virtio 块设备,引导过程会退出 GRUB shell。这是因为 GRUB 没有正确测试到 EFI 设备的路径。GRUB 代码现在根据 EFI PCI 设备路径验证 EFI 设备路径,并在这种情况下识别磁盘设备。
- BZ#918824
- 在处理 ExitBootServices ()EFI 函数时,GRUB 不遵循 UEFI 规格。如果在检索内存映射时 ExitBootServices ()失败,GRUB 立即退出,而不是重复尝试。在这个版本中,GRUB 会在退出前重试获取内存映射 5 次,引导过程将继续成功。
- BZ#922705
- 当从源软件包构建 64 位版本的 GRUB 时,无法在配置阶段链接可执行文件,除非安装了 32 位的 glibc-static 软件包版本。在这种情况下,GRUB 失败时不会显示任何错误消息。这个问题已通过将 grub 软件包设置为直接依赖于 /usr/lib/libc.a 文件来解决,该文件可以在不同的环境中提供。如果在构建 grub 软件包时缺少 文件,则会显示适当的错误消息。
- BZ#928938
- 当在多路径设备中安装时,GRUB 不可读取,且系统无法引导。这是因为,在用于匹配设备的正则表达式中有一个错误,因为 grub-install 命令无法解析符号链接来获取设备统计信息。在这个版本中解决了这个问题,GRUB 现在会在多路径设备中安装时按预期引导。
- BZ#1008305
- 在 UEFI 模式中引导时,GRUB 之前为指向结构的指针分配内存,而是为结构分配内存。这种呈现的 GRUB 无法完成并将控制权传给特定硬件配置的内核。在这个版本中解决了这个问题,GRUB 现在会如预期为结构分配内存,并成功将控制权传递给内核。
- BZ#1017296
- 在以前的版本中,GRUB 无法安装在 Non-Volatile Memory Express (NVMe)设备上,因为它无法在安装过程中解析设备名称。在这个版本中,添加了一个匹配 NVMe 设备的正则表达式支持,GRUB 现在可以在这些设备中成功安装。
功能增强
- BZ#848628
- GRUB 现在提供了一个新的菜单选项"macappend"。当在 grub.conf 文件中或 GRUB 命令行中使用"macappend"时,"BOOTIF=<MAC_address>" 参数会附加到内核命令行中。这允许指定网络接口,以便 Anaconda 在 PXE 启动期间使用。
8.60. grubby
8.60.1. RHBA-2013:1713 - grubby 程序错误修复更新
程序错误修复
- BZ#991197
- 在以前的版本中,在使用 tboot 引导装载程序的内核更新后,grub.conf 文件无法正确更新。这是因为 grubby 工具中的一个错误,这会导致它错误地解释在其中有 tboot 的 grub.conf 小节。在这个版本中,grubby 可以读取 /etc/sysconfig/kernel 文件中的 HYPERVISOR 和 HYPERVISOR_ARGS 参数,以便 tboot 按预期执行。
- BZ#999908
- 在此次更新之前,yum 和 anaconda 升级可能会因为找不到 RAM 磁盘镜像而在 AMD64 和 Intel 64 构架上出现内核 panic 失败。这只有在安装了 tboot 并且运行内核 "%post" 或 "%posttrans" 脚本时才会发生。在这个版本中,在 grub 条目中添加了 initramfs 磁盘镜像,在上述场景中不再发生内核 panic 失败。
8.61. gtk2
程序错误修复
- BZ#970594
- 当在组合框中渲染文本时,GTK+ cell renderer 始终呈现为第一个项目最后一次呈现的文本。因此,如果之前呈现的文本与名称集中的任何项目不匹配,则 Contacts 视图中的"Categories"组合框中的第一个项目可能会呈现为空,这会影响到可访问性和自动测试。在这个版本中,确保单元渲染程序被正确更新,并为当前的组合框调用呈现项,因此上面提到的问题不再发生。
- BZ#979049
- 由于 GtkTreeView 接口中的一个错误,在点系统辅助图标后,Evolution 中的树视图中的展开箭头将停止正常运行。这个版本提高了树形扩展和冲突代码的稳健性,这修复了这个程序错误。
8.62. hapoxy
错误修复
- BZ#903303
- 在以前的版本中,setuid ()和 setgid ()函数无法正常工作。因此,在尝试丢弃 root 特权后,HAProxy 负载均衡器无法正确丢弃补充组。功能的行为已被修改,HAProxy 现在会按预期丢弃所有补充组。
功能增强
- BZ#921064
- 在这个版本中,在 haproxy 软件包中添加了对 TPROXY 的支持。TPROXY 简化了代理防火墙后面的客户端的管理任务。另外,透明的代理也使存在对用户的代理不可见。
8.63. hdparm
程序错误修复
- BZ#639623
- 在以前的版本中,hdparm 工具没有假设有些磁盘信息不可用。因此,hdparm 可能会意外终止,且没有有用的输出。在这个版本中,添加了正确的对磁盘查询的检查,hdparm 现在会终止并出现更详细的错误消息。
- BZ#735887
- 在以前的版本中,当用户请求有关文件占用多少磁盘空间的信息时,hdparm 工具不会假定一些磁盘信息可能不可用。因此,hdparm 意外终止,在这样的场景中没有有用的输出。在这个版本中,添加了正确检查磁盘查询。因此,hdparm 现在会用提供详细信息的错误消息终止。
- BZ#807056
- 在以前的版本中,hdparm 工具以可能导致错误的方式检索硬盘驱动器识别数据。因此,hdparm 无法获取一些 occasions 中的数据,并会显示一个 unhelpful 错误信息。在这个版本中,相应的系统调用被替换为更合适的且可靠的系统调用。现在,硬盘识别数据已在输出中被成功获得并打印。
- BZ#862257
- 当 hdparm 工具无法获取有关硬盘的必要几何结构信息时,它会尝试下载固件。在以前的版本中,由于不正确的控制语句,hdparm 可能会因为这个下载尝试时出现分段错误而意外终止。在这个版本中,添加了控制语句检查系统调用失败。因此,如果 hdparm 无法对驱动器进行操作,它会显示错误消息并干净退出。
8.64. hsqldb
8.64.1. RHBA-2013:1614 - hsqldb 程序错误修复更新
程序错误修复
- BZ#996152
- 在以前的版本中,/etc/sysconfig/hsqldb 文件没有标记为 "config (noreplace) "。因此,重新安装或更新软件包可能会覆盖用户进行的配置更改。在这个版本中,配置文件已被正确标记,在重新安装或更新过程中会保留对该文件的修改。
- BZ#962676
- 在此次更新之前,hsqldb 数据库依赖于版本 1:1.6.0 或更高版本的 java 软件包,它们在一些 Red Hat Enterprise Linux 6 平台上不可用。因此,安装 hsqldb 软件包会失败并显示错误消息。在这个版本中,需要版本 0:1.5.0 或更高版本的 java 软件包,hsqldb 的安装现在可以正常工作。
8.65. hwdata
错误修复
- BZ#989142
- 在以前的版本中,pci.ids 数据库中缺少有关 Red Hat Virtio Small Computer System Interface (SCSI)设备的某些信息。因此,在使用 lspci 工具时,设备名称没有正确显示,并显示数字设备 ID。在这个版本中,pci.ids 数据库已被修改,以按预期提供正确的信息。
功能增强
8.66. hypervkvpd
程序错误修复
- BZ#920032
- 在以前的版本中,hypervkvpd 服务注册到两个 netlink 多播组,其中一个由 cgred 服务使用。当 hypervkvpd 收到 netlink 消息时,它被解释为其自身。因此,hypervkvpd 意外终止,并显示分段错误。在这个版本中,hypervkvpd 只会注册到自己的 netlink 多播组,并验证传入 netlink 消息的类型。当 cgred 服务运行时,使用 hypervkvpd 不再会导致分段错误。
- BZ#962565
- 在此次更新之前,hypervkvpd 初始化脚本不会检查 Hyper-V 驱动程序模块是否已加载到内核中。如果安装了 hypervkvpd,它将在系统引导时自动启动,即使系统没有作为 Hyper-V hypervisor 上的客户机机器运行。验证已添加到 hypervkvpd 初始化脚本中,以确定 Hyper-V 驱动程序模块是否已加载到内核中。因此,如果模块没有加载到内核中,则 hypervkvpd 现在不会启动,但会显示正确的驱动程序模块没有被加载的消息。
- BZ#977861
- 在以前的版本中,hypervkvpd 没有使用足够安全的编译器选项构建,从而导致编译的代码存在安全漏洞。hypervkvpd 守护进程使用完整的只读重新定位(RELRO)和位置独立的可执行文件(PIE)标记构建。因此,编译的代码更安全,更好地保护对可能的缓冲区溢出。
- BZ#983851
- 当使用 Get-VMNetworkAdapter 命令查询虚拟机网络适配器时,每个子网字符串都必须用分号分隔。由于 IPv6 子网枚举代码中的一个错误,不会列出 IPv6 地址。应用了补丁,IPv6 子网枚举程序现在可以正常工作。
8.67. ibus-hangul
错误修复
- BZ#965554
- 在以前的版本中,Ibus 的 Hangul 引擎无法正常工作。如果有预编辑字符串可用,并且输入焦点被移到另一个窗口中,则提交 preedit 字符串。之后,当输入焦点移回窗口时,X Input Method (XIM)无法处理第一个密钥输入。在这个版本中,代码中的更改解决了这个问题,在重点更改后按输入不再会在上述场景中丢失。
8.68. icedtea-web
8.69. initscripts
程序错误修复
- BZ#915659
- 正则表达式(用于与 grep 实用程序中主绑定设备的名称匹配)不正确。因此,网络脚本无法正确处理包含注释的接口配置中的行,ifup-eth 命令无法激活从设备。这个更新为 grep 和 ifup-eth 提供了更新的正则表达式,现在可以在上述场景中按预期工作。
- BZ#919217 BZ#963944
- 在 Red Hat Enterprise Linux 6.4 中,主设备总是在其从设备之后启动,同时使用模式 6 绑定。因此,绑定的接口不可用。在这个版本中,确保在从设备和模式 6 绑定之前始终设置 master 设备现在可以正常工作。
- BZ#984003
- 在以前的版本中,在 initrd 脚本中挂载 /proc 目录不会考虑 /etc/fstab 文件中设置的选项。因此,/proc 没有使用指定的选项挂载。在这个版本中,/proc 被挂载到 rc.sysinit 脚本中,这样可确保使用指定的选项挂载它。
- BZ#877928
- 在以前的版本中,使用 nmcli 工具来停止接口,即使它目前没有被 NetworkManager 管理。因此,该接口已停止,但 nmcli 指出该操作的输出已失败。在这个版本中,当 NetworkManager 不处理 interace 时,nmcli 不再被调用,例如当它失败时,断开连接、未管理或不可用。因此,nmcli 的输出现在与实际结果匹配。
- BZ#836233
- 如果通过动态主机配置协议版本 4 (DHCPv4)分配 IP 地址失败,则 initscript 退出并显示错误。因此,如果 DHCPv4 失败,则不会设置静态 IPv4 和 IPv6 地址。添加了选项 IPV4_FAILURE_FATAL,以便用户在 DHCPv4 失败时确定脚本是否应该继续或退出。另外,如果在配置文件中启用了"no"和 DHCPv6,则 initscript 会尝试获取 IPv6 地址,即使 DHCPv4 失败。
- BZ#843402
- 在发送 TERM 信号后,killproc ()函数总是在进程再次检查前等待 $delay 秒。这个等待是不必要的,这个更新 killproc ()会在等待的延迟期间多次检查。因此,killproc 可以在进程结束时立即继续。
- BZ#864802
- 在以前的版本中,initscript 不会遵循管理员指定的挂载顺序,因为有些挂载类型会被优先排序。因此,子目录可以在其父目录之前挂载。更新后,NFS,通用互联网文件系统(CIFS),服务器消息块(SBM)和其他挂载类型是最后挂载的。因此,/etc/fstab 文件中的挂载会以正确的顺序处理。
- BZ#814427
- 在以前的版本中,securetty 工具总是以读写模式打开 /etc/securetty 文件。因此,在只读根文件系统中,这会导致失败,即使 TTY 已存在也会修改该文件。在这个版本中,securetty 会检查 /etc/securetty 文件是否需要修改,并在不需要时退出。因此,securetty 现在可以在只读根文件系统中正常工作。
- BZ#948824
- 在此次更新之前,当地址解析协议(ARP)检查成功执行时,用户不会被通知。因此,用户可能会混淆载入接口所需的时间。在这个版本中,在每次 ARP 检查后都会输出一条消息,从而防止混淆。
- BZ#921476
- 在以前的版本中,initscripts 文档不包含关于 rule github 文件的信息。因此,用户不知道如何为 IPv6 地址设置路由规则。在这个版本中,在 sysconfig.txt 文件中添加 rule6 channel 文件的文档。
- BZ#905423
- 在以前的版本中,在每次使用默认值更新后,用户不知道 /etc/init configured.conf 文件会被覆盖。在 /etc/init configured.conf 文件中添加了一个注释,以告知用户不应修改这些文件,而是使用 5.2.override 文件。
功能增强
- BZ#815676
- 在这个版本中,动态主机配置协议版本 6 (DHCPv6)的配置选项已应用到 /etc/dhcp/dhclient6-<iface>.conf 文件。现在,应用 /etc/dhcp/dhclient6-<iface>.conf 中的 DHCPv4 和 DHCPv6 的选项。
8.70. iotop
8.70.1. RHBA-2013:1719 - iotop 程序错误修复更新
程序错误修复
- BZ#746240, BZ#908149
- 在以前的版本中,当 iotop 工具由非 root 用户运行时,iotop 工具会意外终止。这是因为 CVE-2011-2494 中最近应用补丁使 taskstats 内核子系统的 I/O 统计信息只能由 root 用户访问,而 iotop 不会预计在非 root 用户身份运行时,其"taskstats"调用可能会失败。在这个版本中,为 iotop 添加权限检查,当用户没有所需权限时,iotop 会退出,并解释了需要 root 权限。
- BZ#826875
- 在以前的版本中,iotop 工具无法正确处理平台字符串。因此,iotop 命令无法在 64 位 PowerPC 系统中正确显示 I/O 调度类及其优先级("PRIO")列。有了这个更新,这个 bug 已被修复,iotop 命令现在会如预期在 64 位 PowerPC 系统中显示 "PRIO" 列。
- BZ#849559
- 当设置无效的区域设置时,iotop 工具无法启动并显示以下错误信息:locale.Error: 不支持的区域设置在这个版本中,底层源代码已被修改。因此,当设置无效的区域设置时,会使用默认区域设置,返回有关此更改的警告。
8.71. ipa
程序错误修复
- BZ#904119
- 在以前的版本中,在迁移过程中,用户会逐一添加到默认用户组中。因此,将用户添加到大型组中非常耗时。在这个版本中,用户被添加到 100 的批处理中,它比之前的方法显著提高性能。
- BZ#905626
- 在以前的版本中,在尝试注册客户端时,身份管理客户端安装程序不会查找所有可用的服务器。因此,如果在注册过程中有任何身份管理 master 不可用,注册 "ipa-client-install" 命令将无法注册客户端。在这个版本中,客户端安装程序会尝试从 DNS 自动发现所有服务器,也可以使用命令行上的"--server"选项传递,直到它找到可用的服务器,ipa-client-install 现在可以正常工作。
- BZ#906846
- 从 OpenLDAP 服务器迁移时,身份管理无法正常工作。因此,尝试从远程服务器检索 LDAP 模式会失败。在这个版本中,身份管理在 "cn=subschema" 条目中查找,来自 OpenLDAP 服务器的迁移不再会失败。
- BZ#907881
- 在此次更新之前,身份管理密码锁定目录服务器插件会错误地处理密码锁定。因此,如果 Identity Management 密码策略被配置为 Lockout Time 值,则用户帐户会被永久禁用,即使不会超过用户密码失败的最大数量。已修复插件以便正确处理密码锁定时间,用户帐户锁定现在可以正常工作。
- BZ#915745
- 在以前的版本中,当将身份管理服务器升级到更新的版本时使用的更新文件不包含新的 Directory Server 模式 "ipaExternalMember" 属性类型和 "ipaExternalGroup" 对象类。因此,在整个过程中,在使用 schema 元素和 Web 用户界面(Web UI)的命令行界面(CLI)命令都无法正常工作。在这个版本中,将缺少的对象类和属性类型添加到身份管理更新文件中。现在,Directory 服务器架构会在身份管理更新过程中更新,CLI 命令和 Web UI 可以正常工作。
- BZ#916209
- 当身份管理配置解析程序包含 "includedir" 指令时,无法解析 Kerberos 客户端配置文件(/etc/krb5.conf)。因此,身份管理 ipa-adtrust-install 安装程序直接解析和更新 Kerberos 客户端配置,并意外终止,并显示语法错误。在这个版本中,配置解析器可以正确地处理 "includedir",ipa-adtrust-install 不会在上述场景中崩溃。
- BZ#924004
- 在以前的版本中,当身份管理客户端安装程序使用 LDAP 协议从身份管理服务器下载证书颁发机构(CA)证书时,它偶尔不会回退到 HTTP 协议。因此,即使证书可以使用 HTTP 协议访问,身份管理客户端安装会失败。在这个版本中,在下载 CA 证书时,身份管理客户端安装程序可以在不同的协议之间正确回退,现在即使在通过一个协议下载失败时也可以完成安装。
- BZ#924009
- 身份管理客户端安装程序不允许重新注册已注册的客户端。因此,当机器或配置了身份管理客户端的虚拟机时,如果首先取消注册客户端,则所有成功注册都会失败,直到客户端条目从身份管理服务器中删除为止。在这个版本中,在 Identity Management 客户端安装程序中添加了一个 "--force-join" 选项,特权管理员现在可以重新注册身份管理客户端。
- BZ#924542
- 在以前的版本中,身份管理主机 Based Access Control (HBAC)规则 API 允许管理员指定 HBAC 规则的 "Source Host" 组件,即使这个组件已被弃用。因此,在 HBAC 规则中使用 "Source Host" 组件时可能会出现意外行为。这个程序错误已被解决,现在 HBAC 规则中不允许"源主机"组件,管理员不再会出现规则的意外行为。
- BZ#948928
- 在某些情况下,身份管理升级过程会双重编码存储在目录服务器中的认证机构(CA)证书。因此,一些身份管理客户端无法解码 CA 证书并安装客户端。在这个版本中,CA 证书会被正确编码;从身份管理服务器正确检索客户端安装 CA 证书,安装可以如预期进行。
- BZ#950014
- 在某些情况下,身份管理安装和升级过程不会以正确顺序更新用户和用户角色成员资格信息。因此,用户角色偶尔没有被正确应用,即使他们已授权了身份管理客户端,用户可能无法继续特权操作(例如,注册身份管理客户端)。现在,成员资格信息以正确顺序应用,用户特权操作不再因为成员信息不完整而失败。
- BZ#952241
- 在以前的版本中,当身份管理公钥基础架构(PKI)服务器证书(auditSigningCert)被续订时,不正确的 trust 参数被分配给更新的证书,服务器无法使用它。证书续订过程已更新,为续订的证书分配正确的信任参数,身份管理 PKI 证书续订现在可以正常工作。
- BZ#967870
- 与 Active Directory 集成相比,具有 Active Directory 集成的身份管理服务器支持在 NetLogon 查询中有所不同配置回复。NetLogon 行为中存在以下差异:
- 在查询基于 TCP 的 LDAP 时,不会响应 NetLogon 查询
- 查询中不存在 DnsDomain 时的响应
- 当查询不匹配时,不会向发送返回 LDAP_RES_SEARCH_RESULT;NetLogon 变得无响应。
因此,这些差异可能会导致发送 NetLogon 查询的工具出现错误。NetLogon 查询响应程序已被修复,在 NetLogon 回复中提到的问题不再发生。 - BZ#970541
- 当具有许多成员(如大型用户组)的条目时,身份管理服务器无法正常工作。因此,身份管理 CLI 或 Web UI 管理命令与此类条目操作(例如,添加新用户、列出组或更新它们)可能会持续 30 秒以上。在身份管理服务器中实现了几个改进,即:
- Web UI 现在会在不需要时避免成员资格信息(例如,在组列表中)
- 条目成员资格操作命令(例如,将用户添加到组中)现在避免对成员资格信息进行不必要的操作
- 添加了成员资格属性缺少子字符串索引。
通过这些实现,身份管理 CLI 和 Web UI 管理命令的性能显著提高,特别是在处理大型用户组时。 - BZ#975431
- 在以前的版本中,/var/lib/ipa/pki-ca/publish/ 目录,其中 Identity Management 公钥基础架构(PKI)发布证书撤销列表(CRL)导出,在 ipa-server 软件包被重新安装或升级后包含不正确的所有权和权限信息。因此,在手动修改目录的所有权和权限之前,PKI 无法更新目录中的 CRL。修正了身份管理安装程序和升级脚本,以正确处理目录的所有权和权限,现在会在上述场景中正确更新 CRL 导出。
- BZ#976716
- 在此次更新之前,身份管理 XML-RPC 接口偶尔不会在其回复中返回正确的 "Content-Type" 标头。因此,处理 XML-RPC 响应的程序或脚本可能无法处理响应并显示验证错误。修正了 XML-RPC 响应器,可以返回正确的 "Content-Type" 标头,程序和脚本现在可以调用身份管理 XML-RPC 接口,即使启用了严格的验证。
- BZ#980409
- 在以前的版本中,对于 Microsoft Windows Server 2012 中完成的 Kerberos ticket,身份管理 Active Directory 集成不需要为 MS-PAC 扩展填充 KERB_VALIDATION_INFO 部分的不同流程,与 Microsoft Windows Server 2008 相比。因此,由于不兼容,不能接受这样的 Kerberos 票据,且无法用来验证或创建使用 Microsoft Windows Server 2012 的信任。KERB_VALIDATION_INFO 验证已被重构为在进一步处理前过滤意外值,而身份管理 Active Directory Trust creation 不再与 Microsoft Windows Server 2012 一起失败。
- BZ#1011044
- 在以前的版本中,ipa-client-install 安装脚本无法正确检测客户端是否已安装在机器上。因此,当客户端卸载脚本无法识别安装的客户端时,客户端卸载脚本可能会拒绝恢复机器。此外,即使安装的身份管理客户端或服务器计算机上,客户端安装也可能会成功。但是,这可能会中断配置文件或身份管理客户端或服务器功能。在这个版本中,ipa-client-install 已被修复,可以正确检测安装,上面描述的问题不再会发生。
功能增强
- BZ#955698
- 在这个版本中,为 Identity Management 服务器主机条目引入了 "userClass" 属性。在以前的版本中,主机条目不包含可用于主机置备系统的自由格式属性,或者为新主机设置类,然后供身份管理的其他功能使用,例如由 Automatic Membership Assignment 模块使用。管理员和调配系统现在可以使用新的"userClass"主机条目属性。
- BZ#986211
- 在这个版本中,为 Identity Management Web UI 添加了用户条目的"GECOS"字段。"GECOS"是重要的用户字段,因为它等于提供给系统的用户通用名称,应通过 CLI 和 Web UI 界面编辑。现在,可以在 Identity Management Web UI 中显示和更改用户的"GECOS"字段。
8.72. ipmitool
程序错误修复
- BZ#826027
- 在前面的 ipmitool 更新中,添加了新的选项 "-R" 和 "-N",以通过 LAN 和 lanplus 接口调整传出 IPMI 请求的重新传输率。这些选项的实现设定了重新传输超时的错误默认值,传出请求会提前超时。另外,在某些情况下,ipmitool 可能会在超时发生时意外终止并出现分段错误。在这个版本中修复了默认的超时值,因此 ipmitool 没有 "-N" 选项重新传输传出的 IPMI 请求,如之前版本一样,崩溃不再发生。
- BZ#903251
- 在以前的版本中,使用 ipmitool 程序在用户访问信息中启用 "ipmi" 和 "link" 键无法正常工作。因此,不会考虑这些设置的值。已提供了一个补丁,可确保按预期读取和处理这些设置的值。
- BZ#923192
- 在聚合网络或响应 Baseboard Management Controller (BMC)时,回复操作超时会触发 protocol 命令重试操作。因此,ipmitool 工具可能会错误地处理带有之前 protocol 命令的回复的 LAN 会话协议命令。在这个版本中,只处理每个命令的预期回复,并清理命令间的预期回复。现在,当后续命令当前处于待处理状态时,第一个命令的重试回复会被正确忽略。
8.73. iproute
ip
和 rtmon
),它们设计为使用 Linux 内核的高级网络功能。
程序错误修复
- BZ#1011148
- 使用 ip monitor neigh 命令监控 IP 邻居缓存时,缓存会遇到第 2 层网络未命中。因此,ip monitor neigh 命令无法解码内核生成的未命中事件。要修复此程序错误,用于删除条目的邻居缓存事件的代码已从上游向后移植,ip monitor neigh 现在可识别缓存未命中事件,并使用输出中的 miss 关键字正确格式化它。
- BZ#950400
- 在以前的版本中,Red Hat Enterprise Linux 6 缺少设置 IPv6 令牌网络配置的功能。因此,用户有较少的网络选项。IPv6 令牌功能已在内核(BZ""876634)和到
iproute
的用户空间接口中实现。https://bugzilla.redhat.com/show_bug.cgi?id=950400用户现在可以设置 IPv6 令牌网络,之后可以选择性地接收网络前缀。 - BZ#908155
- Red Hat Enterprise Linux 6.5 附带了 VXLAN (虚拟扩展 LAN)(一个类似 VLAN 的第 3 层封装技术)支持内核,因此用户和应用程序需要使用 VXLAN 功能。在这个版本中,
ip
工具可识别并支持 'vxlan' 设备。 - BZ#838482
- 当设置了较大的
rto_min
(与某个目的地通信时使用的最小 TCP Retransmission TimeOut)时,ip route show 命令不会返回正确的值。现在,提供了一个补丁来修复这个程序错误,ip route show 现在会如预期处理rto_min
。 - BZ#974694
- 在此次更新之前,
lnstat
工具的手册页被错误地引用不存在的目录,iproute-doc
而不是iproute-<package version&
gt; 目录。错误的文档可能会使用户混淆。要修复这个程序错误,文件系统路径已被修正。 - BZ#977845
- 在以前的版本中,
lnstat
工具的 interval 选项的行为及其文档之间存在不一致。因此,lnstat
在几秒钟后退出,而不是刷新视图,从而使 interval 选项毫无用处。interval 选项行为已被修改为每N
秒刷新数据,从而修复这个程序错误。 - BZ#985526
- 在以前的版本中,
ip
工具会错误地处理 netlink 通讯,在某些情况下可能会导致挂起。因此,使用 ip link show 命令列出网络设备在 SELinux 限制模式下挂起。在这个版本中,ip
工具会在等待回复前检查rtnl_send ()
函数的结果,从而避免了 indefinite 挂起。现在,可以列出 SELinux 限制环境中的网络设备。 - BZ#950122
- 在此次更新之前,
tc
实用程序文档缺少batch
选项的描述。要修复这个错误,tc
手册页已被更新,包括batch
选项的描述。
功能增强
- BZ#885977
- 在以前的版本中,网桥模块
sysfs
系统不提供检查非配置 IP 多播互联网组管理协议(IGMP)侦听数据的功能。如果没有此功能,用户无法完全分析其多播流量。在这个版本中,用户可以列出检测到的多播路由器端口,以及带有活跃订阅者和关联的接口的组。 - BZ#929313
- 分布式覆盖虚拟以太网(DOVE)隧道允许构建虚拟可扩展局域网(VXLAN),其代表 ISO OSI 第 2 层使用的可扩展解决方案。网桥工具是 iproute 软件包的一部分,例如,可用于管理 Linux 平台上的 WLAN 设备上的转发数据库。
- BZ#851371
- 如果从管道检测
tc
工具,则无法识别子命令何时完成。在tc
工具中添加了新的OK
选项。现在,批处理模式中的tc
接受标准输入中的命令( tc -OK -force -batch 命令),并为每个成功完成 tc 子命令的标准输出返回OK
。
8.74. iptables
程序错误修复
- BZ#924362
- 之前版本的 iptables 添加了对 /lib/xtables/ 或 /lib64/xtables/ 目录的"alternatives"功能支持。但是,当使用"yum upgrade"命令以及包含自定义插件文件的目录升级 iptables 时,iptables 无法用替代的从符号链接替换目录。因此,一些 iptables 模块不可用。这个问题已通过修改 iptables spec 文件来解决,以便 /lib/xtables/ 或 /lib64/xtables/ 目录不再由"alternatives"管理。
- BZ#983198
- 以前,iptables-save 命令只支持 "--modprobe=" 选项来指定 modprobe 可执行文件的路径。但是,iptables-save (8) man page 错误地声明,可以使用一个不支持的选项"-M"来执行这个操作,这可能会导致混淆。iptables-save 命令已被修改来支持"-M"选项来指定 modprobe 的路径,并更正 iptables-save (8)手册页,现在可以正确地提到 "-M" 和 "-modprobe=" 选项。
- BZ#1007632
- 由于 iptables init 脚本中的一个错误,在使用基于网络的 root 设备和 INPUT 策略的默认过滤器时,系统可能会在关闭期间变得无响应。这个问题已通过在清除 iptables 规则并删除 iptables 链前将默认链策略设置为 ACCEPT 来解决。
功能增强
8.75. ipvsadm
8.76. irqbalance
程序错误修复
- BZ#951720
- 在以前的版本中,irqbalance 会警告 MSI 中断,并且因为使用了 kernel-2.6.32-279 的内核版本而无法正确分类 IRQ。这个版本会阻止用户使用旧版本的内核的 irqbalance,而无需处理 MSI 中断的功能,且不再收到警告信息。
- BZ#975524
- 由于 irqbalance 软件包的最新更改,在 irqbalance 服务启动时不会创建 /var/run/irqbalance.pid 文件,从而导致 irqbalance 与 Linux Standard Base (LSB)规范不兼容。这个更新提供了一个修复此问题的补丁,因此 irqbalance 软件包再次兼容 LSB。
- BZ#991363
- irqbalance 代码中的一个错误会导致 irqbalance 守护进程在 CPU 热插或热拔时以分段错误终止。在这个版本中解决了一个损坏的 IRQ 重新平衡列表,irqbalance 守护进程不会在这种情况下崩溃。
8.77. iscsi-initiator-utils
程序错误修复
- BZ#884427
- 在以前的版本中,如果为同一 iSCSI 目标门户创建不同格式的多个节点记录,则可能会出现数据库错误。因此,根据文件系统依赖 readdir syscall 的顺序,偶尔会出现一个错误,从而导致更新操作失败。要解决这个问题,在记录创建时,无法同时防止存在并检测到不同格式的多个节点记录。iSCSI 数据库中不再存在重复的节点条目,对记录的更新不会导致数据库错误。
- BZ#983553
- 在此次更新之前,单个无法访问的目标以前可能会阻止对其它目标的重新扫描。因此,iscsiadm 工具可能会停止 D 状态,其余目标可能会保持未扫描的问题。要修复这个程序错误,iscsiadm 已被术语化,且所有目标都已更新。现在,会在不需要长时间的延迟的情况下,可以正确扫描正常工作的会话。
- BZ#1001705
- 当 VDMS (虚拟桌面服务器管理器)试图向 iSCSI 数据库添加新记录时,会失败并显示以下错误:iscsiadm:添加记录时出错:没有可用内存。因此,由于这个错误,主机在连接到存储时变得无法正常工作。应用了上游补丁,现在可以成功附加 /var/lib/iscsi 文件。
功能增强
8.78. iw
8.78.1. RHEA-2013:1563 - iw 增强更新
8.79. java-1.6.0-openjdk
错误修复
- BZ#976897
- 在以前的版本中,由 com.sun.imageio.plugins.jpeg.JPEGImageWriter 类分配的 int[] 对象消耗大量内存,因此不会发布。在这个版本中,底层流处理逻辑已被修改,以确保正确释放此类内存,且不再发生大量内存消耗。
8.80. java-1.7.0-openjdk
程序错误修复
- BZ#825824
- 尝试使用 jstack tapset 编译 SystemTap 脚本可能会失败,并显示类似如下的错误:Error: 帧大小为 272 字节在这个版本中,修正了 jstack tapset,并解决这个问题。
- BZ#871771
- 由于 KDC 列表串联逻辑不正确,当 krb5.conf 文件中的 dns_lookup_kdc 属性设置为 true 时,sun.security.krb5.Config.getKDCList 方法会返回不正确的 KDC 列表。现在,串联逻辑已修复,现在会返回正确的 KDC 列表。
- BZ#997633
- java-1.7.0-openjdk RPM 软件包包含 libnss3 依赖项的不正确的规格,并在 i686 系统上安装其 x86_64 版本。由于缺少依赖项,在 32 位 JVM 上启动 -Dcom.sun.management.jmxremote 参数的 java 命令会意外终止。此更新修正了依赖项规格。因此,安装了 libnss3 软件包的正确版本,在使用 -Dcom.sun.management.jmxremote 参数启动时 java 命令不再终止。
功能增强
8.81. kde-settings
错误修复
- BZ#886237
- Konqueror 浏览器默认启用 Java 支持。由于 Java 是基于浏览器的恶意软件攻击的常见目标,因此在 Konqueror 中默认禁用 Java。要在 Konqueror 中启用 Java,请导航到 Settings -> Configure Konqueror -> Java & JavaScript (将路径设置为 Java),然后选择 "Enable Java globally" 复选框。
8.82. kernel
安全修复
- CVE-2014-3673,CVE-2014-3687, Important
- 在 Linux 内核的 SCTP 实现处理格式或重复地址配置更改 Chunks (ASCONF)的方式中发现了一个安全漏洞。远程攻击者可以利用这些漏洞之一使系统崩溃。
- CVE-2014-3688, Important
- 在 Linux 内核的 SCTP 实现处理关联输出队列的方式中发现了一个安全漏洞。远程攻击者可以发送专门制作的数据包,导致系统使用过量内存,从而导致拒绝服务。
- CVE-2014-5045, Moderate
- 在符号链接上执行卸载操作时,Linux 内核的 VFS 子系统处理参考计数中发现了一个安全漏洞。本地无特权用户可以使用此缺陷来耗尽系统上的所有可用内存,或者可能触发一个无用错误,从而导致系统崩溃或特权升级。
- CVE-2014-4608, Low
- 在 Linux 内核 LZO 实现的 LZO 实施处理 Literal Runs 的 lzo1x_decompress_safe () 函数中发现了一个整数溢出缺陷。在非常罕见的情况下,一个本地攻击者可以利用这个漏洞使系统崩溃,或者可能会在系统上升级其权限。
程序错误修复
- BZ#1108360
- 在此次更新之前,在某些因素下,内核计时器可能会导致智能平台管理接口(IPMI)驱动程序变得无响应,从而导致 CPU 负载高。在这个版本中,应用了补丁,IPMI 驱动程序不再挂起。
- BZ#1109270, BZ#1109712
- 在以前的版本中,当错误恢复重启时,KCS 驱动程序中的 Orthonormal Basis 功能(OBF)计时器不会被重置,这会导致立即超时。因此,这些时间问题会导致 ipmi 变得无响应。此外,大量错误消息填充了 /var/log/messages 文件,并导致高 CPU 使用量。在这个版本中,应用了补丁来解决这个问题,ipmi 在上述情况下不再挂起。
- BZ#1135993
- 由于某些内核更改,TCP Small Queues (TSQ)进程在 TCP 会话节流时无法正确处理 Nagle 的算法。底层源代码已被修补,Nagle 的算法现在可以在 TSQ 中正常工作。
- BZ#1140976
- 在此次更新之前,由于 error-handling 路径中的一个错误,损坏的元数据块可用作有效的块。在这个版本中,错误处理路径已被修复,并添加了更多检查来验证元数据块。现在,当遇到损坏的元数据块时,它会被正确标记为已损坏并相应地处理。
- BZ#1154087, BZ#1158321
- 在以前的版本中,日志会强制在调用链中出现相对较少的可用堆栈。因此,(
XFS
)文件系统中的一个堆栈 overflew,系统可能会意外终止。要修复此错误,移动日志会强制到工作队列,减轻堆栈压力,并避免系统崩溃。 - BZ#1158324
- 在此次更新之前,TCP 传输中断不能小于默认的 8 buffered tx 帧,这会导致 ixgbe 适配器发生 TCP 传输延迟。在这个版本中,代码更改会删除最小 8 缓冲帧的限制,现在允许至少 1 个帧进行传输。因此,传输延迟现在可以最小化。
- BZ#1165984
- 在以前的版本中,以太网 100 驱动程序更新中的编码错误会导致某些物理层(PHY)的初始化不正确,并返回 RX 错误。在这个版本中,编码错误已被修复,设备驱动程序可以正常工作。
- BZ#1158327
- 在此次更新之前,帧缓冲(offb)驱动程序不支持在 QEMU 标准 VGA 适配器上设置颜色面板注册的设置,这会导致颜色显示不正确。QEMU 标准 VGA 适配器更新了fb 驱动程序,从而修复颜色问题。
- BZ#1142569
- 在此次更新之前,在 PCI 错误恢复回调和 tg3 驱动程序中潜在的调用之间会发生几个竞争条件。触发时,这些竞争条件可能会导致意外的内核终止。这个程序错误已被解决,内核不会再崩溃。
- BZ#1158889, BZ#1162748
- 由于在 Top Segmentation Offload (TSO)片段处理过程中出现硬件错误条件,所以内核和数据包没有传输页面分配失败。在这个版本中,当 TSO 片段处理失败时,更通用通用分段卸载(GSO)用作回退,数据包现在可以成功传输。
- BZ#1163397
- 在以前的版本中,当使用 zombie PID 和 cgroup 时,内核变得无响应。要修复这个程序错误,应用了补丁程序,内核不再挂起。
- BZ#1165000
- 在以前的版本中,在某些情况下,gfs2_converter 引入了磁盘内节点的 di_goal_meta 字段不正确的值。因此,gfs2_converter 返回了此类内节点上的 EBADSLT 错误,且不允许在常规文件的目录中或新块中创建新文件。在这个版本中,如果遇到损坏的目标值并继续进行正常操作,则允许 gfs2_converter 来设置可行的目标值。在这个版本中,gfs2_converter 隐式修复任何损坏的目标值,因此不再破坏正常操作。
- BZ#1169403
- 在以前的版本中,某些错误条件会导致信息发送到系统日志。这些消息可能会丢失,而不是被记录,或重复的消息不会被禁止。在极端情况下,生成的日志记录卷可能会导致系统锁定或其他问题。现在,相关的测试已被反向修复,现在频繁的消息会被禁止和不经常记录的消息。
功能增强
- BZ#1167209
- 这个版本增加了来自 Emulex 和 Oracle Enterprise Management (OEM)资格的修复,包括kyhawk 硬件的最新修复到 Emulex be2iscsi 驱动程序。
安全修复
- CVE-2014-5077, Important
- 在 Linux 内核的流控制传输协议(SCTP)实现中发现了一个 NULL pointer dereference 缺陷。一个远程攻击者可以使用这个缺陷使系统崩溃。
程序错误修复
- BZ#1110839
- 由于内核信号处理中的一个错误,可以使用不正确的舍入模式来执行十进制浮动点(DFP)操作。因此,DFP 计算可能会返回不正确的或损坏的结果。在这个版本中解决了这个问题,方法是替换之前用来验证浮动点控制寄存器中某些值的有效性的简单位掩码。位掩码被浮点控制寄存器的试用负载替代。
- BZ#1140163
- 在以前的版本中,当释放大量巨页(several TB)时,内核可能会遇到软锁定事件。这可能会导致性能问题。已修改内存管理代码,以增加在这种情况下上下文切换的机会,从而防止出现软锁定事件。
- BZ#1122102
- nouveau 驱动程序中的一个错误可能会阻止 Lenovo ThinkPad W530 笔记本电脑的主显示在系统恢复挂起后进行初始化。如果笔记本电脑有一个外部屏幕,在系统暂停时已分离。这个问题已通过向后移植与 DisplayPort 接口相关的上游补丁来解决。
- BZ#1139807
- 由于 IP 虚拟服务器(IPVS)代码中的竞争条件,内核可以在运行 IPVS 连接同步守护进程时触发常规保护错误。在这个版本中,IPVS 代码中的竞争条件已被解决,在运行 IPVS 守护进程时内核不再崩溃。
- BZ#1139345
- 内核有时可能会因为内核调度程序中的零划分而出现 panic。这个程序错误已通过定义一个新的 div64_ul ()划分函数,并更正 proc_sched_show_task () 函数中的受影响的计算来解决。
- BZ#1125980
- 在某些 Lenovo ThinkPad 系列笔记本电脑上删除 rtsc_pci_ms 内核模块可能会导致内核 panic。在这个版本中,通过更正基本驱动程序函数 platform_uevent ()中的一个 bug 来解决这个问题。
- BZ#1125994
- 如果系统通过绑定设备配置了 netconsole 服务,则 Linux Netpoll API 中的错误可能会导致内核 oops。在这个版本中,netpoll_poll_dev ()函数中使用不正确的标记已被修复,因为这个程序错误,内核不再崩溃。
- BZ#1127580
- 内核没有处理由无效的浮点控制(FPC)注册导致的异常,从而导致内核 oops。这个问题已通过将标签放在代码中的正确位置来解决。
- BZ#1138301
- 在以前的版本中,某些网络设备驱动程序在挂载后不接受 ethtool 命令。因此,不会应用指定设备驱动程序的当前设置,并返回错误消息。添加了 ETHTOOL_DELAY 变量,这样可确保 ethtool 实用程序在尝试应用选项设置前等待一段时间,从而修复这个程序错误。
- BZ#1130630
- 文件系统卸载代码和文件系统通知代码之间的罕见的竞争条件可能会导致内核 panic。在这个版本中,内核应用了一系列补丁来防止这个问题。
- BZ#1131137
- bio 层中的一个错误可能会阻止用户空间程序在大量 RAM 内存碎片状况下运行时将数据写入磁盘。这个问题已通过修改 bio 层中的相应功能来拒绝添加新内存片段以及已达到的最大内存片段数时拒绝添加新内存页面的问题。
- BZ#1135713
- 由于 ext3 代码中的一个错误,fdatasync ()系统调用不会强制将内节点大小更改为写入磁盘(如果它是文件中的唯一元数据更改)。如果系统意外终止,这可能会导致错误的内节点大小和可能的数据丢失。代码处理内节点更新已被修复,fdatasync ()现在在这种情况下将数据写入磁盘。
- BZ#1134258
- 在以前的版本中,openvswitch 驱动程序无法正确处理包含多个 VLAN 标头的帧,这可能会导致内核 panic。在这个版本中解决了这个问题,并确保 openvswitch 进程此类帧正确。
- BZ#1134696
- 之后的 Intel CPU 将新的"Condition Changed"位添加到 MSR_CORE_PERF_GLOBAL_STATUS 注册。在以前的版本中,内核 false 假设这个位表示性能中断,这会阻止其他 NMI 处理程序运行并执行。要解决这个问题,对内核应用了补丁来忽略 perf 代码中的这个位,使其他 NMI 处理程序能够运行。
- BZ#1135393
- 在允许 virtio_net 驱动程序上的 VLAN 设备使用 TCP 分段卸载(TSO)功能后,数据包的分段已从虚拟机移到主机。但是,有些设备无法使用 8021q 模块处理 TSO,并破坏数据包,这会导致非常低的吞吐量(小于 1 Mbps)以及通过线路传输损坏的数据包。在该问题正确解决前,恢复了允许使用 TSO 功能的补丁;现在,分段会作为虚拟机再次在虚拟机上执行,并且网络吞吐量正常。
- BZ#1141165
- 由于 IP 虚拟服务器(IPVS)代码中出现竞争条件,因此当处理来自不同 CPU 上连接的数据包时,内核可能会触发 panic。在这个版本中,在从连接表的哈希和未哈希连接的代码中添加了缺少的 spin locks,并确保来自同一连接的所有数据包都由单个 CPU 处理。
- BZ#1129994
- 在以前的版本中,使用 Emulex 16 Gb Fibre Channel (FC)主机总线适配器(HBA)的 IBM Power 8 机器上的小块随机 I/O 操作可能会因为 lpfc 驱动程序中的一个错误而变得无响应。要解决这个问题,在 lpfc 代码中添加了一个内存障碍,以确保在 CQE 有效负载前读取有效的位。
- BZ#1126681
- 在配置了网桥设备的系统上运行 "bridge link show" 命令可能会触发内核 panic。这是因为所有 RTNL 消息类型都没有从 bridge 模块注册中正确取消注册。在这个版本中,确保 RTNL 消息类型被正确取消注册,在这种情况下内核 panic 不再发生。
- BZ#1114406
- 在以前的版本中,当多个 NFS 客户端使用写委托将数据附加到文件中时,NFS 服务器无法正确处理,数据可能会被破坏。在这个版本中,通过调整相关 NFS 代码中的 NFS 缓存有效检查,在这个场景中访问的文件现在包含有效的数据。
- BZ#1131977
- 在以前的版本中,IPv4 路由代码允许 IPv4 垃圾回收程序在具有精确配置的多个 CPU 上并行运行。这可能会大大降低系统性能,并最终会在系统达到某些负载后软锁定。要解决这个问题并改进垃圾收集器的性能,收集器已移到异步运行的工作队列中。
功能增强
- BZ#1133834
- 对于 NFSv3 的 exportfs 工具已实施一个新的"nordirplus"选项。这个选项允许用户为给定的 NFSv3 导出禁用 READDIRPLUS 请求,从而防止在某些情况下不需要的磁盘访问。
安全修复
- CVE-2014-0205, Important
- 在 futex_wait ()期间重新排队时,Linux 内核的 futex 子系统处理参考计数的方式中发现了一个安全漏洞。本地无特权用户可以使用此缺陷,对索引节点的参考计数器或 mm struct 的参考计数器进行零换算,后者备份了 futex 的内存区域,这可能会导致无用后缺陷,导致系统崩溃或可能出现权限升级。
- CVE-2014-3535, Important
- 在处理通过 VxLAN 接口的某些无效数据包时,Linux 内核的网络实施处理日志的方式中发现了一个 NULL pointer dereference 缺陷。一个远程攻击者可以通过向此类接口发送特殊设计的数据包来使系统崩溃。
- CVE-2014-3917, Moderate
- 在 Linux 内核的系统调用审核中实施中发现了一个越界内存访问缺陷。在定义了现有审计规则的系统上,本地非特权用户可能会使用此缺陷将内核内存泄漏到用户空间,或者可能会使系统崩溃。
- CVE-2014-4667, Moderate
- 在 Linux 内核的流控制传输协议(SCTP)实现中发现了一个整数,它处理了某些 COOKIE_ECHO 数据包。通过发送特制的 SCTP 数据包,远程攻击者可以利用此漏洞来防止到特定 SCTP 服务器套接字的合法连接。
程序错误修复
- BZ#1089359
- 在以前的版本中,NFSv4 允许 NFSv4 恢复过期或丢失的文件锁定。如果文件同时修改了,这可能会导致文件损坏。此问题已通过一系列补丁解决,确保 NFSv4 客户端不再尝试恢复过期或丢失的文件锁定。
- BZ#1090613
- NFSv4 代码中的错误可能会导致在无限循环中重新处理 NFS4ERR_BAD_STATEID 错误,而不是恢复错误的状态 ID。要解决这个问题,对 NFSv4 代码应用了一系列补丁。如果 nfs4_select_rw_stateid () 函数返回一个 -EIO 错误,NFS 客户端不再重试 I/O 操作,这会导致不正确的状态 ID 错误。
- BZ#1120651
- 对 Open vSwitch 内核模块的以前的更改引入了一个无用问题,这会导致在使用此模块的系统上出现内核 panic。在这个版本中,确保受影响的对象在代码中的正确位置释放,从而避免了问题。
- BZ#1118782
- 在以前的版本中,Huge conversion Lookaside Buffer (HugeTLB)无条件地允许访问巨页。但是,在某些环境中,巨页可能不被支持,如 PowerPC 架构上的 KVM 客户机,当巨页没有支持时,尝试使用基本页面作为内存的巨页会导致内核 oops。在这个版本中,如果系统中不支持巨页,则 HugeTLB 拒绝对巨页的访问。
- BZ#1096397
- 当 NFS 客户端在发送 CLOSE 操作后收到 NFS4ERR_ADMIN_REVOKED 错误时,NFS4 会错误地处理一个情况。因此,客户端无限期地发送相同的 CLOSE 操作,尽管它收到 NFS4ERR_ADMIN_REVOKED 错误。对 NFSv4 代码应用补丁,以确保 NFS 客户端在这种情况下仅发送特定的 CLOSE 操作。
- BZ#1099607
- 在删除文件以直接降低相关索引节点的链接数后,NFS 之前称为 drop_nlink ()函数。因此,NFS 无法重新验证内节点缓存,因此可以使用过时的文件句柄,从而导致 ESTALE 错误。应用了补丁以确保 NFS 在删除文件后正确验证内节点缓存。
- BZ#1117582
- SCSI 代码之前的更改修复了在删除 SCSI 设备时可能会出现的竞争条件。但是,这种改变会导致性能下降,因为它使用了块层代码中的某些功能,与更新的内核版本相比是返回不同的值。这个版本更改了 SCSI 代码,以正确使用块层代码返回的值。
- BZ#1102794
- 在以前的版本中,当使用在绑定接口之上配置的桥接接口时,绑定驱动程序不知道分配给网桥的 IP 地址。因此,启用了 ARP 监控时,在探测同一子网时 ARP 监控无法以网桥的 IP 地址为目标。因此,网桥总是报告为 down,且无法访问。在这个版本中,绑定驱动程序已了解到分配给绑定接口上配置的网桥的 IP 地址,并且 ARP 监控现在可以按预期探测网桥。请注意,如果使用 arp_validate 选项,仍会出现这个问题。因此,在解决此问题之前,不要使用这个选项。
- BZ#1113824
- 如果缓存包含具有相同密钥的多个条目但不同的 TOS、标记或 OIF 位,则自动路由缓存重建功能可能会错误地计算路由散列链的长度。因此,该功能可以访问重建的限制并禁用系统上的路由缓存。这个问题已通过使用帮助函数来解决,这样可避免计算此类重复路由。
- BZ#1121541
- 由于一个允许在停止时写入 RAID 阵列的竞争条件,md 驱动程序可能会进入死锁情况。死锁阻止缓冲区被写入磁盘,设备的所有 I/O 操作都会变得无响应。在这个版本中,md 驱动程序已被修改,现在可以避免这种死锁。
- BZ#1112226
- 当在 Hyper-V 环境中引导客户机并有足够的可编程 Interval Timer (PIT)中断丢失或未注入客户机时,内核会 panicked,客户机无法引导。当客户机在 Hyper-V 环境中运行时,绕过相关的 PIT 检查来解决这个问题。
安全修复
- CVE-2014-2851, Important
- 在 Linux 内核的 ping_init_sock () 函数中发现了一个 use-after-free 漏洞,它处理 group_info 参考计数器。本地非特权用户可能会使用此缺陷使系统崩溃,或者可能在系统上升级其权限。
- CVE-2014-6647, Moderate
- 在 Linux 内核 futex 子系统的 futex_wait_requeue_pi () 函数中发现了一个 NULL pointer dereference 缺陷,它处理某些 Priority Inheritance (PI) futexes 的方法。本地非特权用户可能会使系统崩溃。
- CVE-2014-7339, Moderate
- 在 Linux 内核的 Reliable Datagram Sockets (RDS)函数中的 rds_ib_laddr_check () 函数中发现了一个 NULL pointer dereference 缺陷。本地非特权用户可能会使用此缺陷使系统崩溃。
- CVE-2014-2672, Moderate
- 它发现,远程攻击者可以利用th_tx_aggr_sleep () 函数中的竞争条件缺陷,通过在系统的 Atheros 9k 无线网络适配器上创建大型网络流量来使系统崩溃。
- CVE-2014-2678, Moderate
- 在 Linux 内核的 Reliable Datagram Sockets (RDS)函数中的 rds_iw_laddr_check () 函数中发现了一个 NULL pointer dereference 缺陷。本地非特权用户可能会使用此缺陷使系统崩溃。
- CVE-2014-2706, Moderate
- 在 Linux 内核的 mac80211 子系统实现中发现了一个竞争条件缺陷,它处理 TX 和 STA wake-up 代码路径之间的同步。一个远程攻击者可以使用这个缺陷使系统崩溃。
- CVE-2014-3144,CVE-2014-3145, Moderate
- 在 Linux 内核的网络实现中的 Berkeley Packet Filter (BPF)解释器功能的 Netlink Attribute 扩展中发现了一个越界内存访问缺陷。本地无特权用户可以使用此缺陷,通过特制的套接字过滤器使系统崩溃或将内核内存泄漏到用户空间。
程序错误修复
- BZ#1107503
- 由于挂载选项解析器中的一个错误,在 CIFS DFS 共享上的前缀路径可以使用双引号('\\')前加上前缀,从而导致某些环境中出现不正确的 "No such file" 错误。挂载选项解析程序已被修复,前缀路径现在会如预期以反斜杠开头。
- BZ#1110170, BZ#1110169, BZ#1110168, BZ#1109885, BZ#1109883
- 在 IBM S/390 系统上 AES、DES 和 DES3 算法的操作实现中发现了几个并发问题,可能会导致数据崩溃。具体来说,工作页面不受 CTR 模式中的并发调用的保护。在 CTR 模式中没有获取工作页面的回退解决方案无法正确处理 iv 值。在某些并发情况下,使用的 CBC 模式没有正确保存和恢复密钥和 iv 值。所有这些问题已在代码中解决,上述算法的并发使用不再会导致数据崩溃。
- BZ#1090749
- 在集群环境中,从客户机到主机的多播流量有时是不可靠的。但是,通过 RHSA-2013-1645 公告尝试解决这个问题,但尝试引发回归问题。这个版本恢复了 RHSA-2013-1645 提供的此问题的补丁,并引入了一个新的问题修复。如果禁用多播 querier 且没有检测到其他 querier,则代表这个问题已通过大量带有多播数据包的网络来解决。
- BZ#1106472
- 从系统中删除网桥后,网桥 MDB RTNL 处理程序被错误地移除,然后配置了网桥。这会导致各种问题,例如,没有显示来自其余网桥的多播 IGMP 侦听数据。在这个版本中,确保仅在网桥模块卸载后删除桥接处理程序,多播 IGMP snooping 数据现在可以在上述情况下正确显示。
- BZ#1100574
- 由于 nouveau 内核模块中的一个错误,在某些多显示配置中可能会修改错误的显示输出。因此,在连接了外部显示器的 Lenovo Thinkpad T420 和 W530 笔记本电脑上,这可能会导致 LVDS 面板"bleed"到白色,显示控制器在重新引导后可能会无法正常工作。对显示配置的更改还可能会在各种情况下触发错误。在这个版本中,nouveau 内核模块已被修正,上述配置现在可以正常工作。
- BZ#1103821
- 当客户机支持 Supervisor Mode Execution Protection (SMEP)时,KVM 会在客户机页表条目(sptes)上设置适当的权限位,以模拟 SMEP 强制访问。在以前的版本中,KVM 会错误地验证主机 cr4 注册中是否设置了"smep"位,而不是 guest cr4 注册。因此,如果主机支持的 SMEP,它会被强制执行,即使它没有被请求,这可能会导致 guest 系统无法引导。在这种情况下,这个更新会按预期进行"smep"位检查和客户机系统引导。
- BZ#1096059
- 在以前的版本中,如果 hrtimer 中断延迟,则在同一处理器上排队的所有待处理 hrtimer 事件也会延迟,直到处理初始 hrtimer 事件为止。这可能会导致所有 hrtimer 处理在一段时间内停止。要防止这个问题,在处理最初延迟 hrtimer 事件时,内核已被修改来处理所有过期的 hrtimer 事件。
- BZ#1099725
- 在以前的版本中,硬件可能会以 FIFO 顺序而不是标记的顺序执行由驱动程序发送的命令。因此,命令可能会按顺序执行,这可能导致大量延迟和吞吐量降低。在这个版本中,ATA 子系统标记发送到硬件的每个命令,确保硬件按照标记的顺序执行命令。支持标记命令的控制器性能现在可以提高 30-50%。
- BZ#1107931
- 由于 GRE 隧道代码中存在一个错误,无法使用自定义名称创建 GRE 隧道。此更新更正 ip_tunnel_find () 函数的行为,允许用户使用自定义名称创建 GRE 隧道。
- BZ#1110658
- qla2xxx 驱动程序已升级至 8.05.00.03.06.5-k2 版本,它比之前的版本提供了很多程序错误修复,以便更正 mailbox 命令的各种超时问题。
- BZ#1093984
- 如果在追踪过程中更改了 trace 时钟,内核不会重置内核环缓冲。但是,新的时钟源可能与以前的时钟源不一致,因此结果追踪记录可能包含无法解析的时间戳。为确保 trace 记录只包含可比较时间戳,现在每当 trace 时钟发生变化时都会重置环缓冲。
- BZ#1103972
- 在以前的版本中,KVM 不接受主机 PCI 设备(网段)号,因此无法为虚拟机分配属于非零 PCI 段一部分的 PCI 设备。要解决这个问题,除了插槽、设备和功能号外,KVM 已扩展为接受 PCI 域号。
功能增强
- BZ#1094403
- 用户现在可以基于每个数据包在 IPv4 中设置 ToS、TTL 和优先级值。
安全修复
- CVE-2014-3153, Important
- 在 Linux 内核 futex 子系统处理某些优先级不一致性(PI) futexes 的方式中发现了一个安全漏洞。本地非特权用户可能会使用此缺陷升级其在系统上的权限。
- CVE-2014-17 37, Important
- 在处理 FDRAWCMD IOCTL 命令时,Linux 内核的软盘驱动程序处理某些错误代码路径中提供的数据的方式中发现了一个安全漏洞。具有写入 /dev/fdX 的本地用户可能会使用此缺陷释放(使用 kfree ()函数)任意内核内存。
- CVE-2014-1738, Low
- 在处理 FDRAWCMD IOCTL 命令时,Linux 内核的软盘驱动程序会将内部内核内存地址泄漏到用户空间。具有写入 /dev/fdX 的本地用户可能会使用此缺陷获取有关内核堆安排的信息。
- 注意对 /dev/fdX 有写入访问权限的本地用户可以使用这两个漏洞(CVE-2014-1737)与 CVE-2014-1738)结合使用,以升级其系统上的权限。
- CVE- serving203, Moderate
- 发现,proc_ns_follow_link () 函数没有正确地返回最后一个 pathname 组件中的 LAST_BIND 值,因为 procfs 符号链接的预期,这可能会导致过量释放内存和排序 slab 崩溃。本地非特权用户可能会使用此缺陷使系统崩溃。
- CVE-2014-2039, Moderate
- 在用户空间应用程序尝试使用链接堆栈时,Linux 内核处理异常的方式中发现了一个安全漏洞。在 IBM S/390 系统中,一个本地非特权用户可能会使用这个缺陷使系统崩溃。
- CVE-2013-6378, Low
- Linux 内核中的 Marvell 8xxx Libertas WLAN (libertas)驱动程序中发现了一个无效的指针 dereference 缺陷。本地用户能够写入 libertas 驱动程序提供的文件,且位于 debug 文件系统(debugfs)上的文件可能会使用此缺陷使系统崩溃。注: debugfs 文件系统必须在本地挂载才能利用这个问题。默认情况下不挂载它。
- CVE-2014-1874, Low
- 在 Linux 内核的 SELinux 实现处理带有空 SELinux 安全上下文的文件的方式中发现了一个拒绝服务漏洞的问题。具有 CAP_MAC_ADMIN 功能的本地用户可能会使用这个缺陷使系统崩溃。
程序错误修复
- BZ#1086839
- 由于 lpfc 驱动程序中的 ndlp 列表损坏错误,带有 Emulex LPe16002B-M6 PCIe 2-port 16Gb Fibre Channel Adapters 的系统可能会在 I/O 操作过程中触发内核 panic。已向后移植了一系列补丁来解决这个问题,因此内核在上述系统的 I/O 操作过程中不再 panic。
- BZ#1096214
- 之前的更改启用了为网桥接口上配置的 VLAN 接口接收加速。但是,这个更改允许 VLAN 标记的数据包绕过网桥,并直接发送到 VLAN 接口。在这个版本中,确保网桥正确处理流量,然后再将流量传递给该网桥上配置的任何 VLAN 接口。
- BZ#1090750
- 当主机时间戳计数器(TSC)被标记为不稳定时,引入了全局时钟更新的更改会导致客户机机器启动缓慢。随着分配的 vCPU 数量增加,速度较慢。要解决这个问题,应用了补丁来限制全局时钟更新的速度。
- BZ#1094287
- 由于 ixgbevf 驱动程序中的一个错误,来自 ixgbevf 接口中传入数据包的 VLAN 信息可能会丢失,因此这些数据包不会到达相关的 VLAN 接口。这个问题已通过在将数据包的 VLAN 信息传递给网络堆栈前将其添加到套接字缓冲(skb)中来解决。因此,ixgbevf 驱动程序现在将 VLAN 标记的数据包传递给适当的 VLAN 接口。
- BZ#1089915
- 块设备代码中完成和超时处理之间的竞争条件有时可能会触发 BUG_ON () 断言,从而导致内核 panic。在这个版本中,通过在代码中重新定位相关函数调用和 BUG_ON () 断言来解决这个问题。
- BZ#1088779
- 使用 NFS 文件系统的系统可能会变得无响应,或者因为 nfsd 守护进程中的重复回复缓存(DRC)代码中存在 use-after-free 错误而触发内核 oops。这个问题已通过在尝试使用 nfsd 前修改 nfsd 到 unhash DRC 条目并更喜欢从 slab 分配新的 DRC 条目来解决,而不是从列表中重新使用过期的条目。
- BZ#1092002
- 当尝试因为文件系统配额违反而在 GFS2 文件系统中创建文件时,相关的 VFS inode 不会被完全未初始化。这可能会导致列表损坏错误。在这个版本中,通过在这种情况下正确重新初始化 VFS inode 来解决这个问题。
- BZ#1069630
- 在以前的版本中,当尝试在系统启动时使用直接或偏移挂载类型重新连接挂载时,automount 可能会变得无响应。这是因为当相关调用者还没有拥有挂载时,设备 ioctl 代码不会处理这种情况。此外,umount ()命令有时无法卸载具有过时 root 的 NFS 文件系统。现在,在虚拟文件系统代码中解决了这两个问题,automount 现在可以使用新的 lookup 功能 kern_path_mountpoint ()挂载直接或偏移挂载。umount ()命令现在在不重新验证的情况下处理挂载点,该命令可以使用过时的 root 卸载 NFS 文件系统。
- BZ#1091424
- 内核无法正确处理环境和电源警告(EPOW)中断。这导致无法成功使用"virsh shutdown"命令在 IBM POWER8 系统上关闭客户机。在这个版本中,内核可以正确地处理 EPOW 事件,并打印相应 EPOW 事件的信息描述。有关每个遇到的 EPOW 的详细信息,可在 Real-Time Abstraction Service (RTAS)错误日志中找到。
- BZ#1081915
- 由于 cgroup 代码中出现竞争条件,所以内核任务调度程序可能会在 cgroup 之间移动退出任务时触发内核 panic。应用了补丁,通过替换 cgroup 代码中几个不正确的功能调用来避免此内核 panic。
- BZ#1081909
- cgroup 代码中错误放置函数调用会阻止 notify_on_release 功能正常工作。此功能用于删除空 cgroup 目录,但由于这个错误,一些空 cgroup 目录仍保留在系统中。在这个版本中,确保 notify_on_release 功能始终由 cgroup_task_migrate ()函数中的正确排序操作正确触发。
- BZ#1081914
- 由于 cgroup 代码中的一个竞争条件,当内核任务调度程序在 cgroups 之间移动退出任务时,内核任务调度程序可能会触发一个 use-after-free 错误,这会导致内核 panic。这个版本通过引入新的功能 cpu_cgroup_exit ()来避免内核 panic。此功能可确保内核不会释放尚未为空的 cgroup。
- BZ#1079869
- 由于 hrtimers 子系统中的一个错误,clock_was_set ()函数从软 IRQ 上下文中调用 Inter-processor interrupt (IPI)并等待其完成,这可能会导致死锁情况。通过将 clock_was_set ()函数调用移到工作上下文来应用补丁来解决这个问题。另外,在恢复过程中,hrtimers_resume ()函数仅为当前 CPU 重新编程内核计时器,因为它假定所有其他 CPU 都离线。但是,在某些情况下,这个假设不正确,比如当恢复带有一些非引导 CPU 的 Xen 客户机时,只有禁用 IRQs 时停止了这个假设。因此,即使这些 CPU 在线,在引导 CPU 外,内核计时器不会被修正。要解决这个问题,hrtimers_resume ()已修改,以触发早期软 IRQ 在所有在线 CPU 上正确重新编程内核计时器。
- BZ#1080104
- 由于之前更改了 txselect 参数格式的更改,InfiniBand qib 驱动程序无法在 HP Blade 服务器中支持 HP 品牌 QLogic QDR InfiniBand 卡。要解决这个问题,驱动程序的解析例程 setup_txselect ()已修改为处理多值字符串。
- BZ#1075653
- 对虚拟文件系统(VFS)代码的以前的更改包括 PATH_MAX 变量减少 32 字节。但是,这个更改不会被传播到 do_getname ()函数,它对 getname ()和 do_getname ()函数之间的交互有负面影响。这个版本相应地修改 do_getname (),这个功能现在可以正常工作。
- BZ#1082622
- 在以前的版本中,在某些环境中,如带有几个刀片服务器的 HP BladeSystem Enclosure,kdump 内核可能会因为缺少可用的中断向量而在启动过程中遇到内核 panic 或变得无响应。因此,kdump 无法捕获内核转储。要增加多个可用的中断向量,kdump 内核可以使用更多 CPU 引导。但是,kdump 内核总是尝试使用 bootstrap 处理器(BSP)引导,这会导致在某些情况下内核无法启动多个 CPU。这个更新引入了一个新的内核参数 disable_cpu_acipid,它允许 kdump 内核在引导过程中禁用 BSP,然后成功使用多个处理器引导。这解决了对于有大量设备的系统缺少可用中断向量的问题,并确保 kdump 现在可以在这些系统上成功捕获内核转储。
- BZ#1091826
- 以前对内核调度程序的补丁修复了由 init_numa_sched_groups_power ()函数中的 divide-by-zero 错误导致的内核 panic。但是,这个补丁在带有标准 Non-Uniform Memory Access (NUMA)拓扑的系统上引入了回归问题,以便在一个 NUMA 域中将 cpu_power 设置为预期的值。这会导致任务调度不正确,即使有足够的排队任务来处理任务,但对系统性能有负面影响。在这个版本中,通过为每个未计数的 CPU 添加估算,确保将带有标准 NUMA 拓扑的系统上 cpu_power 的 cpu_power 设置为预期的值。Task 调度现在可以在这些系统上正常工作,而不会与上述程序错误相关的性能问题。
- BZ#1092870
- RTM_NEWLINK 消息可以包含给定网络接口(NIC)的每个虚拟功能(VF)的信息,并在未过滤这些信息时变得非常大。在以前的版本中,内核 netlink 接口允许 getifaddr ()函数处理带有未过滤内容的 RTM_NEWLINK 消息。在某些情况下,内核 netlink 接口会省略给定 NIC 组的数据,从而导致 getifaddr ()无限期循环无法返回受影响 NIC 的信息。在这个版本中,只提供带有过滤内容的 RTM_NEWLINK 信息来解决这个问题。
- BZ#1063508
- 在以前的版本中,当 ext4_releasepage ()函数通过设置了 PageChecked 标志的页面时,会发出一个不必要的警告信息。为了避免内核日志中相关的警告,这个更新会从 ext4 代码中删除相关的 WARN_ON ()。
- BZ#1070296
- Microsoft Windows 7 KVM 客户机在重启后可能会变得无响应,因为在处理页面错误时 KVM 不管理将 Non-Maskable Interrupt (NMI)注入到客户机。要解决这个问题,在 KVM 代码中应用了一系列补丁,确保 KVM 按预期在客户机机器重启过程中处理页面错误。
- BZ#1096711
- turbostat 工具会在带有第四代 Intel Core Processors 的系统中使用时生成错误消息。要解决这个问题,内核已被更新,为 C8、C9 和 C10 C-states 提供 C-state residency 信息。
安全修复
- CVE-2014-2523, Important
- 在 Linux 内核的 netfilter 连接跟踪实施 Datagram Congestion Control Protocol (DCCP)数据包使用了 skb_header_pointer ()函数的方式中发现了一个安全漏洞。一个远程攻击者可以使用此缺陷发送特殊设计的 DCCP 数据包来使系统崩溃,或者可能会在系统上升级其权限。
- CVE-2014-6383, Moderate
- 在 Linux 内核的 Adaptec RAID 控制器(aacraid)检查了 compat IOCTLs 权限的方式中发现了一个安全漏洞。本地攻击者可以利用此漏洞绕过预期的安全限制。
- CVE- serving077, Moderate
- 在禁用可合并缓冲区时处理大型网络数据包的方式中发现了一个安全漏洞。特权客户机用户可以使用此缺陷使主机上的主机崩溃或损坏 QEMU 进程内存,这可能会导致具有 QEMU 进程特权的主机上的任意代码执行。
程序错误修复
- BZ#1078007
- 由于 Linux 内存管理的最新更改,当热拔 CPU 时,内核无法正确处理每个 CPU LRU 页面向量。因此,相关离线 CPU 的页向量会保留内存核算的内存页面。这导致 libvirtd 守护进程在系统关闭时删除相关的内存 cgroup 目录,从而导致 libvirtd 无响应。要解决这个问题,Linux 内存管理现在可以从相关页面向量中正确地清除离线 CPU 的内存页面。
- BZ#1063201
- d_splice_alias () 函数的最新更改引入了一个错误,允许 d_splice_alias ()从与正在查找的目录不同的目录中返回 dentry。因此,在集群环境中,当目录被删除时,可能会触发内核 panic,同时在另一个集群节点上在此目录中执行并发跨目录操作。在这个版本中,通过更正 d_splice_alias () 函数中的搜索逻辑来避免在这种情况下出现内核 panic,因此该功能无法再从不正确的目录中返回 dentry。
- BZ#1086095
- 当 Real-Time (RT)调度程序在 CPU 和 wakeup_kswapd ()函数间移动 RT 任务时,系统可能会进入死锁情况,从而导致内核 panic。这个问题已通过从 deadlock-safe 上下文中删除有问题的内存分配来解决,因此从 deadlock-safe 上下文调用 wakeup_kswapd () 函数。
- BZ#1086007
- 在以前的版本中,一些设备映射器内核模块,如 dm-thin、dm-space-map-metadata 和 dm-bufio,其中包含了对它们正常工作的各种错误。这个版本向后移植了几个解决了这些问题的上游补丁,包括对设备映射器精简配置(thinp)的元数据大小特性的修复,以及 dm-thin 和 dm-bufio 的只读模式修复。因此,上述内核模块现在包含最新的上游更改,可以正常工作。
- BZ#1066535
- 使用新函数 release_cb ()扩展"proto"结构的前一个变化,它会破坏内核应用程序二进制接口(kABI)的完整性。如果调用的核心堆栈新引入到这个功能的指针,针对针对旧内核标头编译的模块,调用会导致访问不足以及后续的内核 panic。要避免这个问题,核心堆栈已被修改为识别新引入的 slab 标记 RHEL_EXTENDED_PROTO。这允许核心堆栈只对支持它的模块安全地访问 release_cb pointer。
- BZ#1083350
- 完全公平调度程序(CFS)没有验证 CFS 周期计时器在 CFS 运行队列上的节流任务时是否在运行。因此,在某些情况下,CFS 运行队列会卡住,因为 CFS 周期计时器不活跃且无法重启。要解决这个问题,CFS 现在会在节流功能内重启 CFS 周期计时器(如果它不活跃)。
- BZ#1073562
- 之前的更改从 Linux 内存管理代码中删除了 ZONE_RECLAIM_LOCKED 标志,以修复内存区回收逻辑中的 NUMA 节点分配问题。但是,删除标志允许并发页面在一个内存区中回收(在系统负载过重时),导致出现不必要的旋转锁定竞争和后续性能问题(系统变得缓慢或无响应)。在这个版本中,如果区无法满足扫描要求,防止重新声明线程扫描内存区来解决这个问题。负载重度的系统不再会出现 CPU 过载,但保持其预期性能。
- BZ#1073564
- 使用压缩功能回收内存的重启逻辑以前应用于 LRU 页面向量级别。但是,这可能会在内存分配中造成大量延迟,因为内存压缩不需要特定 cgroup 和整个内存区的内存页面。这个问题已通过将重启逻辑移到区级别,并在压缩需要区更多可用页面时为区中的所有内存 cgroup 重启内存重新声明的问题。
- BZ#1074855
- 在以前的版本中,for_each_isci_host ()宏被错误地定义,以便它可以访问 2-element 数组的一个 out-of-range 元素。这个宏也被 GCC 4.8 错误地优化,以便在带有两个 SCU 控制器的平台上执行多次。因此,系统在进入 S3 状态或删除 isci 模块时会触发内核 panic。在这个版本中修正了上述宏,上面描述的问题不再发生。
- BZ#1083175
- vmxnet3 驱动程序中的一个错误允许当驱动程序与 netconsole 模块一起使用时,触发潜在的竞争条件。竞争条件允许驱动程序的内部 NAPI 轮询例程与 netpoll 控制器例程同时运行,这会导致数据崩溃和后续的内核 panic。要解决这个问题,vmxnet3 驱动程序已被修改来调用适当的中断处理程序,以正确调度 NAPI 轮询请求。
- BZ#1081908
- 在迁移 CPU cgroup 上的任务时,内核任务调度程序可能会触发竞争条件。竞争条件可能会导致访问指向不正确的父任务组的任务,从而导致系统的行为不可预测,例如显示没有响应。这个问题已通过确保在任务迁移过程中正确存储了正确的任务组信息来解决。
- BZ#1076056
- 以前向后移植到 XFS 代码的补丁向 xlog_cil_empty ()函数添加了一个无条件调用。如果 XFS 文件系统是使用 unsupported nodelaylog 选项挂载的,则该调用会导致访问未初始化的 spin 锁定和一个 consequent 内核 panic。要避免这个问题,nodelaylog 选项已被禁用; 选项仍然被接受,但不再起作用。(nodelaylog 挂载选项最初定义为上游测试选项,自此后已被删除。)
- BZ#1076242
- SCTP sctp_connectx ()ABI 无法对使用 32 位模拟编译的 64 位内核正常工作。因此,在这种情况下,使用 sctp_connectx ()函数的应用程序不会运行。要解决这个问题,新的 ABI 已被实现;COMPAT ABI 允许从 COMPAT-specific 结构复制和转换用户数据到特定于 SCTP 的结构。需要 sctp_connectx ()的应用程序现在可以在使用 32 位模拟编译的 64 位内核的系统上正常工作。
- BZ#1085660
- qla2xxx 驱动程序中的一个错误导致内核崩溃。在这个版本中,修复 qla2x00_alloc_iocbs ()函数中的 "for" 语句中的不正确的条件来解决这个问题。
- BZ#1079870
- 负责创建和绑定数据包套接字的代码没有优化,因此使用 socket ()和 bind ()系统调用的应用程序不会按预期执行。补丁已应用到数据包套接字代码,因此在某些情况下,套接字创建和绑定的延迟现在会显著降低。
- BZ#1077874
- 在以前的版本中,在报告命令成功中止后,vmw_pwscsi 驱动程序可能会尝试向 SCSI 中层完成命令。这会导致一个双完成错误和后续的内核 panic。此更新可确保 pvscsi_abort ()函数仅在 abort 完成后返回 SUCCESS,防止驱动程序无效尝试完成该命令。
- BZ#1085658
- 由于 mlx4_en 模块中的一个错误,可以在初始化前访问与时间戳相关的数据结构。因此,载入 mlx4_en 可能会导致内核崩溃。这个问题已通过将时间戳机制的启动移到代码中的正确位置来解决。
- BZ#1078011
- 由于以前的更改重构了通用路由封装(GRE)隧道代码,ip_gre 模块无法正常工作。因此,GRE 接口丢弃了设置了 Explicit Congestion 通知(ECN)位的每个数据包,且没有设置 ECN-Capable Transport (ECT)位。在这个版本中,重新引入 ipgre_ecn_decapsulate () 函数,它现在被用来替代未正确实现的 IP_ECN_decapsulate () 函数。ip_gre 模块现在可以正常工作,GRE 设备可以按预期处理所有数据包。
- BZ#1078641
- megaraid_sas 驱动程序中的一个错误可能会导致驱动程序错误地读取硬件状态值。因此,在系统引导时禁用了 RAID 卡,系统可能无法引导。在这个版本中,megaraid_sas 驱动程序已被修正,以便在系统引导时启用 RAID 卡。
- BZ#1081907
- 在某些情况下,完全公平调度程序(CFS)中存在一个错误,在 cgroup 之间移动分叉任务时触发竞争条件。当一个子任务被访问时,这个竞争条件可能会导致免费使用的错误以及后续的内核 panic,同时指向其父任务的过时的 cgroup。将补丁应用于 CFS,以确保子任务始终指向有效的父任务组。
- BZ#1078874
- 以前,Red Hat GFS2 文件系统将每个内节点的 ACL 条目限制为 25。然而,在有些情况下这个数字不足,从而导致 setfacl 命令失败。在这个版本中,这个限制增加到 4 KB 块大小的最大 300 ACL 条目。如果块大小较小,则会相应地调整这个值。
- BZ#1085358
- 以前的 CIFS 代码补丁引入了一个回归问题,阻止用户使用 NetBIOS 通过端口 139 上的 TCP 服务挂载 CIFS 共享。这个问题已通过对 get_rfc1002_length ()函数中的 top 字节进行屏蔽来解决。
- BZ#1079872
- 在以前的版本中,用户空间数据包捕获库(如 libcap )有有限的可能确定当前内核支持哪些 Berkeley Packet Filter (BPF)扩展。这个限制对 tcpdump 工具执行的 VLAN 数据包过滤有负面影响,tcpdump 有时无法正确捕获过滤的数据包。因此,这个更新引入了一个新的选项 SO_BPF_EXTENSIONS,它可以指定为 getsockopt ()函数的参数。这个选项可让数据包捕获工具获取当前内核支持哪些 BPF 扩展的信息。现在,tcpdump 工具可以正确地捕获数据包。
- BZ#1080600
- 当 sci_apc_agent_link_up ()函数中硬重置超时时,ci 驱动程序以前会触发错误的 BUG_ON ()断言。如果 SATA 设备在重置后无法恢复链接,则 isci 端口必须返回"等待链接"状态。然而,在这种情况下,端口可能没有处于"resetting"状态,从而导致内核 panic。这个问题已通过删除不正确的 BUG_ON ()断言来解决。
- BZ#1078798
- 在以前的版本中,当从接口中删除 IPv6 地址时,与那个地址相关的路由不会从 IPv6 路由表中删除。这是因为搜索路由时使用不正确的 IPv6 代码。要避免这个问题,已将 IPv6 代码修改为使用 ip6_route_lookup () 函数,而不是在这种情况下的 rt6_lookup ()。现在,当删除 IPv6 地址时,所有相关路由都会从路由表中正确删除。
- BZ#1075651
- 如果 BIOS 在系统引导过程中返回给定rmal 区域的关键行点的负值,则整个 thermal 区域无效,并输出 ACPI 错误。但是,热区域可能仍然需要冷却。在这个版本中,ACPI thermal 管理已被修改为只禁用相关的关键往返点。
- BZ#1075554
- 在分配内核内存时,SCSI 设备处理程序调用 sizeof ()函数,其结构名称为其参数。但是,修改的文件使用不正确的结构名称,这会导致分配内存不足以及后续的内存损坏。在这个版本中,将相关的 sizeof ()函数调用修改为使用指向结构的指针而不是结构名称,以便现在始终正确分配内存。
- BZ#1069848
- 修改 linkat ()系统调用的以前的更改引入了挂载点引用泄漏,并在文件系统链接操作返回 ESTALE 错误代码时后续的内存泄漏。这些问题已通过在这样的情形中正确释放旧挂载点引用来解决。
- BZ#1086490
- dm-bufio 驱动程序没有调用 blk_unplug ()函数来清空插入的 I/O 请求。因此,由 dm-bufio 提交的请求会延迟 3 ms,这可能会导致性能下降。在这个版本中,dm-bufio 会如预期调用 blk_unplug (),避免任何相关的性能问题。
安全修复
- CVE-2014-0055, Important
- 在 Linux 内核用于 vhost_net 实现中的 get_rx_bufs ()函数的方式中发现了一个安全漏洞,它处理了 vhost_get_vq_desc ()函数报告的错误条件。特权的客户机用户可以使用此缺陷使主机崩溃。
- CVE-2014-0101, Important
- 在初始化 SCTP 连接过程中,Linux 内核如何处理经过身份验证的 COOKIE_ECHO 块的方式中发现了一个安全漏洞。远程攻击者可以利用此缺陷,通过启动特殊精心设计的 SCTP 握手来使系统崩溃,从而触发系统上的 NULL pointer 解引用。
- CVE- serving069, Moderate
- 在 Linux 内核的 CIFS 实现中发现了一个安全漏洞,它通过特殊设计的 iovec 结构处理未缓存的写操作。有权访问 CIFS 共享的非特权用户可能会使用此缺陷使系统崩溃、泄漏内核内存或可能在系统上升级其权限。注意:Red Hat Enterprise Linux 6 上 CIFS 挂载的默认缓存设置禁止成功利用这个问题。
- CVE-2013-1860, Low
- 在 Linux 内核的 cdc-wdm 驱动程序中发现了一个基于堆的缓冲区溢出缺陷,用于 USB CDC WCM 设备管理。具有物理访问权限的攻击者可能会使用这个缺陷导致拒绝服务或可能会升级其权限。
程序错误修复
- BZ#1063507
- 高级可编程中断控制器(APIC)代码的以前的更改会导致使用多处理器(MP)表在某些 Intel CPU 上回归。可以在 LAPIC 映射前执行尝试从本地 APIC (LAPIC)读取的尝试,从而导致系统引导期间内核崩溃。在解析 MP 表时,通过尽快映射 LAPIC 来解决此问题。
- BZ#1067775
- 当从 XFS 文件系统上的命名空间中删除内节点时,文件系统可能会进入死锁情况并变得无响应。这是因为删除操作错误地使用了 AGF 和 AGI 锁定,其顺序与排序约束的要求相反,这会导致文件删除和内节点分配和释放操作之间可能的死锁。在这个版本中,在删除带有删除操作的第一个事务的内节点条目前,内节点的引用计数会被丢弃。这样可确保 AGI 和 AGF 锁定以正确顺序锁定,从而防止在这种情况下出现任何进一步死锁。
- BZ#1064913
- 在以前的版本中,GFS2 内核模块会泄漏 gfs2_bufdata slab 缓存中的内存,并允许在 gfs2_remove_from_journal ()函数中触发 use-after-free 竞争条件。因此,在卸载 GFS2 文件系统后,GFS2 slab 缓存仍然可以包含一些对象,因此在某些情况下可能会导致内核 panic。GFS2 内核模块应用了一系列补丁,确保正确从 slab 缓存中释放所有对象,并避免内核 panic。
- BZ#1054072
- 由于内核在内存控制组(cgroups)过程中处理内存不足(OOM)时使用的锁定机制,在很多进程触发 OOM 时,OOM 终止程序无法正常工作。因此,整个系统可能会变得没有响应。应用了一系列补丁来改进此锁定机制,因此 OOM 终止程序现在可以在大量 OOM 负载下的内存 cgroups 中按预期工作。
- BZ#1055364
- 在以前的版本中,当通过 INET 套接字处理标记为 IPv4 的流量时,某些 SELinux 功能无法正确处理 TCP 同步(SYN-ACK)数据包。SELinux 错误地标记初始 SYN-ACK 数据包,因此,使用服务器套接字的标签而不是新的连接标签进行访问控制决策。另外,SELinux 没有正确检查标有 IPsec 流量的出站数据,这会导致与不正确的访问控制决策相关的问题。解决了这些问题的一系列补丁已应用到 SELinux。现在,初始 SYN-ACK 数据包被正确标记,SELinux 会按预期处理所有 SYN-ACK 数据包。
- BZ#1063199
- 在 Red Hat Enterprise Linux 6.5 中,如果相应的网络设备没有报告其功能列表中的任何 CSUM 标志,则会自动禁用 TCP 分段卸载(TSO)功能。在以前的版本中,通过绑定设备配置的 VLAN 设备不会按预期传播其 NETIF_F_NO_CSUM 标志,因此它们的功能列表不包含任何 CSUM 标志。因此,这些 VLAN 设备禁用了 TSO 功能,这会导致带宽性能降低。在这个版本中,绑定驱动程序会正确传播上述标记,以便网络流量现在通过绑定流过 VLAN 设备,而不会出现性能问题。
- BZ#1064464
- 由于 Infiniband 驱动程序中的一个错误,ip 和 ifconfig 工具会错误地报告 IP 链路状态 over Infiniband (IPoIB)接口(如果"ifconfig",如果"RUNNING",如果没有电缆,则显示为 "UP",即使没有电缆连接到相应的网卡。这个问题已通过在代码的正确位置调用对应的 netif_carrier_off () 函数来解决。现在,在上述情况下,IPoIB 接口的链接状态会被正确报告。
- BZ#1058418
- 在 XFS 文件系统上执行读取操作时,失败的缓冲区 readahead 可以在标记为错误的缓存内存中保留缓冲区。这可能会导致在完成 I/O 操作过程中检测到过时的错误,因为大多数调用者不会在后续读取时出现缓冲区的 b_error 字段。要避免这个问题并确保正确的 I/O 错误检测,使用的缓冲区的 b_error 字段在提交 I/O 操作前会为零。
- BZ#1062113
- 在以前的版本中,当热向系统添加内存时,内存管理子系统总是对在线设置的所有内存部分执行无条件页面-块扫描。热添加操作的总持续时间取决于系统已具有的内存大小以及正在添加的内存大小。因此,如果添加大量内存,或者目标节点已经有相当大的内存,热添加操作需要很长时间才能完成。这个版本会优化代码,以便只在需要时执行 page-block 扫描,这大大减少了热添加操作的持续时间。
- BZ#1059991
- 由于 SELinux 套接字中的一个错误收到 hook,在收到 peer:recv 访问控制拒绝时不会丢弃网络流量。SELinux 套接字接收 hook 中存在一个有问题的网络检查,在上述情况下,网络流量会被正确丢弃。
- BZ#1060491
- 当通过 peer-to-peer (PPPP)链接传输大量数据时,可以触发 tty 驱动程序中的 throttle ()和 unthrottle ()函数之间的一些竞争条件。因此,tty 驱动程序变得无响应,处于 throttled 状态,这会导致流量停止。另外,如果大量载入 PPP 链接,则 tty 驱动程序中的另一个竞争条件可能会被触发。这个竞争条件允许对可用缓冲区空间进行不安全的更新,这也可能导致流量停滞。解决这两个竞争条件的一系列补丁都应用于 tty 驱动程序;如果触发第一个竞争条件,则驱动程序循环并强制重新评估相应测试条件,这样可确保上述情形中出现不间断流量流。现在,因为读锁定而完全避免了第二个竞争,可用缓冲区空间的更新可以正常进行。
- BZ#1058420
- 在以前的版本中,e752x_edac 模块错误地处理 pci_dev 使用计数,这可能会为零并取消分配 PCI 设备结构。因此,当模块在某些系统中多次载入时,可能会出现内核 panic。在这个版本中解决了通过重复载入和卸载模块触发的使用计数,不再发生内核 panic。
- BZ#1057165
- 当页表升级时,会为虚拟地址空间添加一个新的页表级别,这会导致新的 Address Space Control Element (ASCE)。但是,在页表升级时,虚拟地址空间的 Translation Lookaside Buffer (TLB)没有被刷新。因此,TLB 包含与旧 ASCE 关联的条目,这会导致意外的程序故障和随机数据崩溃。要解决这个问题,与旧 ASCE 关联的 TLB 条目现在在页表升级时按预期清除。
- BZ#1064115
- 当网络接口以 promiscuous (PROMISC)模式运行时,接口可能会接收和处理 VLAN 标记帧,即使没有 VLAN 附加到接口。但是,如果帧没有分配 VLAN 组,则 enic 驱动程序无法正确处理使用 PROMISC 模式的 VLAN 标记帧的数据包,这会导致各种问题。要在没有 VLAN 组的情况下处理 VLAN 标记帧,帧必须由 VLAN 代码处理,因此不再验证数据包的 VLAN 组字段是否为空。
- BZ#1057164
- IBM System z 上的 Linux 内存管理以前的更改删除了 Address Space Control Element (ASCE)类型的处理程序。因此,内核无法处理 ASCE 异常,这会导致内核 panic。例如,如果内核试图使用大于用户空间程序的当前页表限制的地址访问用户内存,则会触发这样的异常。如果引发 ASCE 异常,此问题已通过调用标准页面错误处理程序 do_dat_exception 来解决。
- BZ#1063271
- 由于网络控制台日志记录中的多个错误,网络控制台发送操作和驱动程序的 IRQ 处理程序之间可能会出现竞争条件,或者网络控制台可以访问无效的内存内容。因此,对应的驱动程序(如 vmxnet3)触发了 BUG_ON () 断言,系统意外终止。应用了解决这些 bug 的补丁,因此在处理发送操作前禁用驱动程序的 IRQ,网络控制台现在可以正确访问 RCU 保护(读取复制更新)数据。使用网络控制台日志记录的系统不再会因为上述条件而崩溃。
安全修复
- CVE-2013-6381,重要
- 在 Linux 内核的 QETH 网络设备驱动程序实现中的 qeth_snmp_command ()函数的方式中发现了一个缓冲区溢出缺陷,处理具有越界长度的 SNMP IOCTL 请求。本地非特权用户可能会使用此缺陷使系统崩溃,或者可能在系统上升级其权限。
- CVE-2013-292 9, Low
- 在 Linux 内核的 ptrace 子系统中解释 get_dumpable () 函数返回值的方式中发现了一个安全漏洞。当 'fs.suid_dumpable' 设置为 2 时,本地无特权的本地用户可能会使用这个缺陷绕过预期的 ptrace 限制,并获取潜在的敏感信息。
- CVE-2013-7263, CVE-2013-7265, Low
- 它发现,Linux 内核的网络实现中的某些协议处理程序可以在不初始化关联的数据结构的情况下设置 addr_len 值。本地无特权用户可以使用此缺陷,通过 recvmsg、recvfrom 和 recvmmsg 系统调用将内核堆栈内存泄漏到用户空间。
程序错误修复
- BZ#1051393
- 由于 NFS 代码中的一个错误,状态管理器和 DELEGRETURN 操作可能会在 DELEGRETURN 收到异步会话错误时进入死锁。状态管理器无法处理失败的 DELEGRETURN 操作,因为它正在等待异步 RPC 任务完成,这无法完成,因为 DELEGRETURN 操作无限期地出现会话错误。应用了一系列补丁,以确保在收到会话错误时异步错误处理程序等待恢复,并且死锁不再发生。
- BZ#1049590
- IPv4 和 IPv6 代码包含与 conntrack 碎片处理相关的几个问题,导致碎片处理阻止了碎片重新组合。这个版本应用一系列补丁,并确保正确处理 MTU 发现,并正确匹配片段并重新集合数据包。
- BZ#1046043
- 在 ptrace ()系统调用中使用 Big Kernel Locks (BKLs)可能会导致 BKL 争用广泛使用 ptrace ()的某些系统上,如 User-mode Linux (UML)系统,从而降低这些系统的性能。这个版本从 ptrace ()系统调用中删除相关的 BKLs,从而解决相关的性能问题。
- BZ#1046041
- 当在 Red Hat Enterprise Linux 6.5 中使用 SCTP over bonding 设备时,SCTP 会假定虚拟设备的卸载功能,无法保证底层物理设备使用这些功能。因此,传出数据包的校验和会被破坏,且无法正确建立网络连接。应用了补丁,以确保软件包到没有 SCTP 校验和功能的设备的校验和会在软件回退中正确计算。在 Red Hat Enterprise Linux 6.5 中,通过绑定设备的 SCTP 连接现在可以按预期建立。
- BZ#1044566
- 如果设置了 VSX Machine State Register (MSR)位,用户进程的上下文以前无法在 PowerPC 平台上保存,但用户没有提供足够的空间来保存 VSX 状态。此更新允许在这样的情形中清除 VSX MSR 位,表明用户上下文中没有有效的 VSX 状态。
- BZ#1043779
- 在静态定义的网关无法访问并且对应的邻居条目进入 FAILED 状态后,该网关将保持在 FAILED 状态,即使它再次可访问。因此,流量不会通过该网关路由。在这个版本中,可以自动探测到这样的网关,以便在流量被访问后再次通过这个网关路由。
- BZ#1040826
- 由于 IPv6 代码中有几个错误,当缓存的 IPv6 目标条目数量达到一个高流量路由器时,可能会发生软锁定。应用了一系列补丁来解决这个问题。这些补丁可确保异步执行路由探测,以防止出现垃圾回收的死锁。另外,垃圾收集器现在异步运行,防止同时请求垃圾收集器的 CPU 等待所有其他 CPU 完成垃圾回收。因此,在上述情况下,软锁定不再发生。
- BZ#1035347
- 以前对 md 驱动程序的更改禁用了 RAID5 卷的 TRIM 操作,以防止可能的内核 oops。但是,如果 MD RAID 卷被重塑为不同的 RAID 级别,这可能会导致在生成的卷上禁用 TRIM,因为 RAID4 个人用于某些重塑。在更改 RAID 级别前,通过设置堆栈限制来解决这个问题,从而确保 RAID 阵列的正确丢弃(TRIM)粒度。
- BZ#1051395
- 在以前的版本中,NFS 在"silly rename"操作和 rmdir ()函数之间允许发生在目录中未链接的文件关闭后删除目录时发生。因此,rmdir ()可能会失败,并显示 EBUSY 错误。这个版本应用了补丁,确保 NFS 在执行 rmdir ()操作前等待任何异步操作完成。
- BZ#1051394
- 由于 EDAC 驱动程序中的一个错误,驱动无法正确对 AMD 系列 16h 处理器进行解码和报告错误。在这个版本中,在代码中包含一个缺少的 case 语句,以便 EDAC 驱动程序现在可以按预期处理错误。
- BZ#1045094
- 当状态管理器从过期状态和恢复 OPEN 操作中恢复时,可能会出现状态管理器(kswapd 守护进程)和 sys_open () 函数之间的死锁。要解决这个问题,已修改 NFS 以忽略 LAYOUTRETURN 操作(一个 pNFS 操作)中的所有错误,在这种情况下,"NFS4ERR_DELAY"除外。
- BZ#1040498
- bnx2x 驱动程序错误地处理从虚拟功能(VF)收到的、使用 VF-PF 频道收到的、不支持的、但不支持的 TLV 命令的驱动程序时,PF 的驱动不会回复。因此,VF-PF 频道处于不稳定状态,VF 最终会超时。一个补丁已被应用于更正 VF-PF 锁定方案,以便正确处理不支持的 TLV,并由 PF 端响应。另外,不支持的 TLV 在以前的版本中可能会导致用于锁定 VF-PF 操作的 mutex。然后,mutex 会停止代码的保护关键部分,这可能会导致 PF 从 VF 收到额外的 TLV 时生成错误消息。应用了补丁可以更正 VF-PF 频道锁定方案,不支持的 TLV,因此不再会破坏 VF-PF 锁定。
- BZ#1040497
- bnx2x 驱动程序中的统计流中有一个错误导致卡的 DMA Engine (DMAE)被访问,而无需执行必要的锁定。因此,之前排队的 DMAE 命令可能会被覆盖,然后虚拟功能可能会将请求超时到其相应的物理功能。触发 bug 的可能性较高,配置了更多 SR-IOV 虚拟功能。覆盖 DMAE 命令还可能会导致其他问题,即使没有使用 SR-IOV。在这个版本中,所有使用 DMAE 的流程都将使用相同的 API,并保留正确的锁定方案,所有这些流都会保留正确的锁定方案。
- BZ#1035339
- 当启动或擦除使用带有空端口的 AHCI 控制器的系统时,EM 传输位忙时,AHCI 驱动程序会在启动 sleep 操作前错误地释放相关的错误处理器。因此,错误处理器可以被 AHCI 控制器的不同端口获取,而 Serial General Purpose Input/Output (SGPIO)信号最终可能在空端口上调整重建模式。在这个版本中,对通用 ATA 驱动程序实现了跨端口错误处理器排除,并且已修改 AHCI 驱动程序来在此特定情况下使用 msleep ()函数。在 sleep 操作时不再释放错误处理程序,SGPIO 信号无法再表示磁盘在空控制器的插槽上重建。
- BZ#1032389
- 以前 igb 驱动程序的更改会导致 ethtool 工具决定和显示以太网设备的某些功能。在这个版本中解决了 igb 驱动程序的问题,现在实际链接功能会被正确决定,ethtool 会显示值准确,并依赖于驱动程序可用的数据。
安全修复
- CVE-2013-4470, 重要
- 在输出设备上启用了 UDP Fragmentation Offload (UFO)功能时,在 Linux 内核的 TCP/IP 协议套件实现中发现了一个安全漏洞。本地非特权用户可能会使用此缺陷导致拒绝服务或可能在系统上升级其权限。
- CVE-2013-6367, Important
- 在 KVM 的 Local Advanced Programmable Interrupt Controller (LAPIC)实现中的 apic_get_tmcct ()函数中发现了一个按零划分的漏洞。特权的客户机用户可以使用此缺陷使主机崩溃。
- CVE-2013-6368, Important
- 在 KVM 处理虚拟 APIC 访问的方式中发现了一个跨页面边界的内存损坏缺陷。本地非特权用户可能会使用此缺陷使系统崩溃,或者可能在系统上升级其权限。
- CVE-2013-2141,低
- Linux 内核中的一个信息泄漏漏洞可能会允许本地的、非特权用户将内核内存泄漏到用户空间。
程序错误修复
- BZ#1027343
- 由于 mlx4 驱动程序中的一个回归错误,Mellanox mlx4 适配器可能会在负载过重负载时变得无响应,以及登录到系统日志的 IOMMU 分配错误。一个补丁已应用到 mlx4 驱动程序,因此驱动程序现在在在 Rx 路径中分配内存时计算最后的内存页片段。
- BZ#1028278
- RSXX DMA 处理代码中的一个错误允许 DISCARD 操作调用 pci_unmap_page ()函数,它会在同时发出 DISCARD、READ 和 WRITE 操作时在 PowerPC 架构上触发竞争条件。但是,DISCARD 操作总是被分配一个 DMA 地址 0,因为它们不是映射的。因此,这个竞争条件可能会导致为另一个操作映射的内存以及后续的 EEH 事件。应用了补丁,防止 DISCARD 操作调用 pci_unmap_page (),从而避免了上述竞争条件。
- BZ#1029330
- 由于 bcma 驱动程序缺少的一部分,brcmsmac 内核模块没有内核所需的内部别名列表,以正确处理相关的 udev 事件。因此,当引导时为设备扫描 bcma 驱动程序时,这些 udev 事件会被忽略,且内核不会自动加载 brcmsmac 模块。应用了提供缺失别名的补丁,以便 brcmsmac 模块的 udev 请求现在按预期处理,内核在引导时自动加载 brcmsmac 模块。
- BZ#1029997
- mlx4 驱动程序中的一个错误可能会触发 Tx 环中处理工作队列元素(WQE)时的"blue flame"功能流量流和 Tx 环中的时间戳机制之间的竞争。因此,mlx4 以太网卡的相关队列对(QP)进入错误状态,相关 Tx 环上的流量被阻止。补丁已应用于 mlx4 驱动程序,因此驱动程序不会对 Tx 环中最后完成的 WQE 进行关联,从而避免了上面提到的竞争。
- BZ#1030171
- NFSv4 代码中的以前更改会导致同步 NFSv4 挂载选项中断。应用了补丁来恢复 sync 挂载选项的功能。
- BZ#1030713
- 由于 Emulex lpfc 驱动程序中的一个错误,驱动程序无法正确分配 SCSI 缓冲区,这会导致 64 位 PowerPC 系统上的 lpfc 适配器出现严重性能下降。应用了这个问题的补丁,lpfc 可以正确地分配 SCSI 缓冲区,lpfc 适配器现在可以在 64 位 PowerPC 系统中按预期工作。
- BZ#1032162
- 当在大量碎片的 GFS2 文件系统中执行 I/O 操作时,可能会发生显著的性能下降。这是因为 GFS2 用来搜索所有可用资源组(rgrp)中的理想可用块的分配策略。在出现大量碎片时,应用了一系列补丁来提高 GFS2 文件系统的性能。现在,如果 GFS2 满足最低要求,则 GFS2 现在会分配在 rgrp 中发现的最大范围。当多块保留时,GFS2 还减少了对位映射的搜索量,方法是跟踪给定 rgrp 中多块保留失败的最小扩展。这通过避免不必要的 rgrp free 块搜索来提高 GFS2 性能。另外,这个补丁系列修复了 GFS2 块分配代码中的一个 bug,当一个多块保留时没有从 rgrp 的保留树正确删除,这最终会因为保留块的计数而触发 BUG_ON ()宏。
- BZ#1032167
- 对于内核,较早的补丁为 QLogic 的 qla2xxx 驱动程序添加了动态队列深度节流功能,允许驱动程序调整附加的 SCSI 设备的队列深度。但是,当某些环境中启用了此功能时,内核可能会崩溃,比如在安装了大量 I/O 负载的 EMC PowerPath 多路径的系统中。要解决这个问题,动态队列深度节流功能已从 qla2xxx 驱动程序中删除。
- BZ#1032168
- 在以前的版本中,如果物理功能(PF)接口停机时,使用分配给虚拟机的 ixgbevf 驱动程序的设备无法自动调整其 Jumbo MTU 值;当 PF 设备上线时,相关的虚拟功能(VF)设备上的 MTU 值被错误地设置。这是因为 PF 和 VF 接口之间的通信频道设置的方式,以及 PF 和 VF 之间的第一个协商尝试。要解决这个问题,对 ixgbevf 驱动程序的结构更改已被进行,以便内核现在可以成功协商 PF 和 VF 之间的正确 API,在这种情况下,在 VF 接口上正确设置 MTU 值。
- BZ#1032170
- ixgbe 驱动程序中的一个错误导致 IPv6 硬件过滤表在通过 SR-IOV 环境中的 PF 接口使用桥接设备时没有正确重写接口。因此,VF 之间的 IPv6 流量中断。现在,上游补丁已被向后移植来修改 ixgbe 驱动程序,以便对 Multimedia Terminal Adapter (MTA)表的更新现在为无条件,避免在 PF 重置时在 MTA 表中出现可能的不一致的情况。在这种情况下,VF 间的 IPv6 流量可以如预期进行。
- BZ#1032247
- 当使用带有未对齐 DMA 缓冲区大小的 Haswell HDMI 音频控制器时,这些音频控制器可能会锁定,直到下次重启某些音频流配置。补丁已应用于 Intel 高定义 Audio (HDA)驱动程序,该驱动程序为 Haswell HDMI 音频控制器强制执行 DMA 缓冲区对齐设置。这些音频控制器现在可以按预期工作。
- BZ#1032249
- 由于最近一次修复,防止在尝试覆盖活跃的 XFS 日志时死锁,xfs_log_need_covered () 函数的行为已更改。但是,也调用 xfs_log_need_covered (),以确保 XFS 日志尾部作为 XFS 日志同步操作的一部分正确更新。因此,在关闭 XFS 文件系统时,同步操作会失败,一些文件可能已经丢失。应用了补丁,以通过将 dummy 记录记录到 XFS 日志来确保更新 XFS 日志的尾部。同步操作成功完成,在这种情况下,文件会被正确写入磁盘。
- BZ#1032250
- 当向后移植一组补丁时,会释放一个补丁,这些补丁可以在 NFSv4 状态 ID 期间使用零状态 ID 来修复 LOCK 操作中的无限循环问题。因此,在很多方面,系统可能会变得无响应。添加了缺少的补丁块,从而解决了这个问题。
- BZ#1032260
- 当从多个进程执行缓冲的 WRITE 操作时,之前,NFS 代码总是验证锁定所有者信息是否与被访问的文件相同,即使没有涉及文件锁定。这会导致性能下降,因为在写入文件之前,分叉的子进程必须同步由父进程写入磁盘的脏数据。另外,当将请求合并到单个 READ 或 WRITE RPC 调用时,如果锁定所有者信息与给定文件不匹配,NFS 会拒绝请求,即使没有文件锁定。这也会导致性能下降。应用了一系列补丁,可放松相关的测试条件,以便在上述情况下不再验证锁定所有者兼容性,从而解决了这些性能问题。
- BZ#1032395
- 由于 mlx4 驱动程序中的一个错误,在调整 Tx 或 Rx 环时,Mellanox 以太网卡会被意外下降。现在,应用了补丁,当设置了 Tx 或 Rx 环时,mlx4 驱动程序可以正确地验证以太网卡的状态,从而解决这个问题。
- BZ#1032423
- 当系统处于内存压力下时,可能会触发 tg3 驱动程序中的双可用错误,从而导致 NIC 意外下降,然后出现内核 panic。应用了补丁,它重组相应的代码,以便正确释放受影响的环缓冲。
- BZ#1032424
- 如果在第一个 RPC 传输完成前超时,RPC 客户端总是重新传输页面数据的零复制。但是,如果使用 O_DIRECT 缓冲和对应的 TCP 套接字仍然被引用时,则重新传输可能会导致数据崩溃。要防止数据崩溃,请重新传输 RPC 调用,在这种情况下,使用 sendmsg ()函数执行。sendmsg ()函数重新传输第一个 RPC 传输的 authentic reproduction,因为 TCP 套接字包含页面数据的完整副本。
- BZ#1032688
- 在创建 XFS 文件系统时,尝试覆盖活跃的 XFS 日志可能会在某些情况下,这会导致 xfssyncd 和 xfsbufd 守护进程之间的死锁。因此,一些内核线程变得无响应,XFS 文件系统可能无法成功创建,从而导致内核 oops。补丁已被应用,通过强制将活动的 XFS 日志强制到磁盘来防止这种情况。
功能增强
- BZ#1020518
- 内核现在支持在 AMD 系统上具有超过 1TB 内存的内存配置。
- BZ#1032426
- 已修改内核以停止在 Wacom touch 设备上报告 ABS_MISC 事件,以确保设备可以被 HAL 守护进程正确识别。
安全修复
- CVE-2013-4387, Important
- 在启用了 UDP Fragmentation Offload (UFO)功能时,在 Linux 内核的 IPv6 实现中发现了一个安全漏洞。一个远程攻击者可以利用这个缺陷使系统崩溃,或者可能会升级其系统的权限。
- CVE-2013-0343, Moderate
- 在 Linux 内核处理临时 IPv6 地址的创建方式中发现了一个安全漏洞。如果启用了 IPv6 隐私扩展(/proc/sys/net/ipv6/conf/eth0/use_tempaddr 设置为 '2'),则本地网络上的攻击者可以禁用 IPv6 临时地址生成,从而导致潜在的信息泄露。
- CVE-2013-2888, Moderate
- 在 Linux 内核处理 HID (Human Interface Device)的方式中发现了一个安全漏洞。具有物理访问权限的攻击者可能会利用此漏洞使系统崩溃,或者可能会在系统上升级其权限。
- CVE-2013-4345, Moderate
- 在 Linux 内核中的 ANSI CPRNG 实现中发现了一个中间漏洞,它处理了非块大小一致的请求。当使用 ANSI CPRNG 时,这可能会导致生成随机数字,其熵比预期少。
- CVE-2013-4591, Moderate
- 发现通过 RHSA-2012:1580 发布的 CVE-2012-2375 修复会意外删除对小型结果缓冲区的检查。具有 ACL 支持对 NFSv4 挂载具有访问权限的本地非特权用户可能会利用此缺陷使系统崩溃,或者可能会升级其对系统的权限。
- CVE-2013-4592, Moderate
- 在移动内存插槽时处理 IOMMU 内存映射的方式中发现了一个安全漏洞。在 KVM 主机上有一个恶意用户,能够将设备分配给客户机,则使用此缺陷使主机崩溃。
- CVE-2013-2889,CVE-2013-2892, Moderate
- 在 Zeroplus 和 Pantherlord/GreenAsia game 控制器处理 HID 报告的方式中发现基于堆的缓冲区溢出漏洞。具有物理访问系统的攻击者可能会使用这些漏洞使系统崩溃,或者可能在系统上升级其权限。
- CVE-2012-6542,CVE-2013-3231, Low
- Linux 内核中的逻辑链接控制(LLC)实现中发现了两个信息泄漏漏洞。本地非特权用户可以使用这些漏洞将内核堆栈内存泄漏到用户空间。
- CVE-2013-1929, Low
- 在 tg3 以太网驱动程序解析重要产品数据(VPD)设备的方式中,基于堆的缓冲区溢出,允许攻击者对系统进行物理访问,导致拒绝服务或可能升级其权限。
- CVE-2012-6545,CVE-2013-1928,CVE-2013-2164,CVE-2013-2234, Low
- Linux 内核中的信息泄漏漏洞可能会允许特权的本地用户将内核内存泄漏到用户空间。
- CVE-2013-2851, Low
- Linux 内核的块层中发现了一个格式字符串缺陷。特权的本地用户可能会利用此漏洞将其权限升级到内核级别(ring0)。
程序错误修复
- BZ#955712
- 负责验证缓存的凭据是否与当前进程匹配的功能没有正确执行检查。代码只检查当前进程凭证中的组是否以与缓存的凭证中的相同顺序显示,但没有保证缓存的凭证中没有其他组。因此,当访问 NFS 挂载中的文件时,与原始进程相同的 UID 和 GID 的进程可能已被授予一个对文件的未授权访问权限,或者在某些情况下,进程可能会被错误地阻止访问该文件。修正了不正确的测试条件,问题将不再发生。
- BZ#629857
- 当 netfilter 模块的状态不同步时,TCP 连接会在 conntrack 表中记录,尽管两个主机之间不存在 TCP 连接。如果主机使用相同的源、端口、目标端口、源地址和目标地址重新建立这个连接,则主机会发送 TCP SYN 数据包和此 SYN 软件包的对等发送确认。但是,由于 netfilter 是不同步的,因此 netfilter 会丢弃此确认,并从 conntrack 表中删除连接项,从而导致主机重新传输 SYN 数据包。应用了补丁来改进这个处理 ; 如果出现意外的 SYN 数据包,则会注解 TCP 选项。SYN 数据包确认充当连接跟踪不同步的确认,然后使用之前标注的信息创建新的连接记录,以避免重新传输延迟。
- BZ#955807
- 由于 ext4 代码中有几个错误,数据完整性系统调用并不总是正确持久保留磁盘上的数据。因此,在系统意外终止后,ext4 文件系统中未同步的数据可能会丢失。ext4 代码应用了一系列补丁来解决这个问题,包括确保在负责文件同步的代码中使用数据障碍的修复。在上述情况下,不再发生数据丢失。
- BZ#953630
- Intel 系列 6、型号 58 和 62 的 C-states 在 Red Hat Enterprise Linux 6 中没有正确初始化处理器。因此,这些处理器无法进入深度 C-states。另外,C-state accounting 无法正常工作,如 powertop 或 turbostat 等电源管理工具,因此显示不正确的 C-state 转换。这个版本应用了一个补丁,以确保正确的 C-states 初始化,因此上述处理器现在可以按预期进入深度核心电源状态。请注意,这个更新没有正确的 C-state 核算,它已被单独的补丁解决。
- BZ#953342
- 在以前的版本中,内核无法处理从非扁平高级编程中断控制器(APIC)模式回退到扁平 APIC 模式的情况。因此,一个 NULL pointer 被解引用,发生内核 panic。在这个版本中,在 APIC 驱动程序中添加了 flat_probe () 函数,它允许使用 flat APIC 模式作为回退选项的内核。在这种情况下,内核不再 panic。
- BZ#952785
- 当试图在多个 NIC 和 macvtap 设备的 hypervisor 上部署虚拟机时,可能会出现内核 panic。这是因为 macvtap 驱动程序无法正常处理,当 macvlan_port.vlans 列表为空并返回 NULL 指针时。这个版本应用了一系列补丁,它们使用 read-copy-update (RCU)机制修复此问题,并防止驱动程序返回一个 NULL pointer (如果列表为空)。在这种情况下,内核不再 panic。
- BZ#952329
- 由于缺少结构,NFSv4 错误处理程序不会处理因为撤销 NFSv4 委派导致的异常。因此,NFSv4 客户端会收到 EIO 错误消息,而不是 NFS4ERR_ADMIN_REVOKED 错误。在这个版本中,修改了 NFSv4 代码,不再需要 nfs4_state 结构来撤销委派。
- BZ#952174
- 在 KVM 时钟(kvmclock)作为时钟源的 KVM 客户机上,某些 VCPU 可能会遇到大量睡眠延迟(时间超过 20 秒)。这会导致通过休眠功能和低延迟事件的不准确度量而造成意外延迟。这是因为 kvmclock 更新被隔离到特定的 VCPU,因此 NTP 频率修正仅应用于该单个 VCPU。这个问题已通过一个补丁解决,允许 kvmclock 对 KVM 客户机上的所有 VCPU 更新。VCPU 睡眠时间现在不超过预期数量,不再会导致上述问题。
- BZ#951937
- 当使用大量使用内存映射的应用程序时,客户会出现大量应用程序延迟,这会导致性能下降。应用了一系列补丁来解决这个问题。另外,补丁会修改内存映射代码,以允许块设备需要稳定的页面写入,仅在后备设备需要时强制 stable 页面写入,并选择性地快照页面内容在写操作期间提供稳定的页面。因此,应用程序延迟已得到显著改进,且有大量内存映射的应用程序会如预期执行。
- BZ#997845
- 以前,RAID1 和 RAD10 代码称为 raise_barrier () 和 lower_barrier () 函数,而不是 freeze_array ()和 unfreeze_array ()函数,它们可以从管理线程中安全调用。因此,如果 MD 阵列包含备用磁盘,则可能会出现死锁情况,从而导致相应的内核线程无响应。另外,如果在出现这个问题后启动关闭序列,关闭序列也会变得无响应,且任何未同步到磁盘中的缓存文件系统数据都将丢失。应用了修正这个问题的补丁,RAID1 和 RAID10 代码现在按预期使用 management-thread 安全功能。
- BZ#996802
- Linux 内核网络驱动程序代码之前的更改引入了 TCP Small Queues (TSQ)功能。但是,这些更改会导致某些网络设备(如使用 ixgbe 驱动程序的设备)出现性能下降。这个问题已通过一系列补丁到 TCP 分段卸载(TSO)和 TSQ 功能解决,它们包括对设置 TSO 帧大小的支持,以及给定 TCP 流的设备队列数量的动态限制。
- BZ#950598
- 如果在 NFSv4 服务器的 OPEN 状态恢复过程中检查委派的 OPEN 操作打开的权限,则 NFSv4 状态管理器可能会进入死锁。这是因为客户端是保存 OPEN 操作的 NFSv4 序列 ID。这个问题已通过在客户端开始检查打开权限前释放序列 ID 来解决。
- BZ#983288
- 仅当文件未设置字节范围锁定时,NFS 之前允许扩展 NFS 文件写入整个页面。但是,有时需要扩展写入以覆盖整个页面,以避免碎片降低。例如,如果对文件执行一系列小的非连续写入,则报告性能会降低。对 NFS 代码应用补丁,允许 NFS 将文件扩展到完整页面写入,如果整个文件被锁定以写入写入,或者客户端保管写委托。
- BZ#998752
- 包括在内核版本 2.6.32-358.9.1.el6 中的补丁,用于修复撤销的 NFSv4 委派的处理,向 NFSv4 代码引入了一个回归错误。在某些情况下,在 NFSv4 异常和异步错误处理中出现这个回归问题,将 NULL inode 传递给与 NFSv4 委派相关的功能,这会导致内核 panic。NFSv4 异常和异步错误处理已被修复,在这种情况下无法再传递 NULL inode。
- BZ#947582
- XFS 文件系统偶尔会关闭,并带有 "xfs_trans_ail_delete_bulk: 尝试删除不在 AIL" 错误消息中的日志项目。这是因为 EFI/EFD 处理逻辑不正确,并且 EFI 日志项目在 AIL 和提交之前可以被释放。补丁已应用于修复 EFI/EFD 处理逻辑的 XFS 代码,并确保在处理 EFD 日志项目前永远不会释放 EFI 日志项目。上述错误不再发生在 XFS 关闭中。
- BZ#947275
- autofs4 挂载过期代码中的一个错误可能会导致 autofs4 模块错误地报告 NFS 挂载的一个忙碌树,"不使用"。因此,automount 会尝试卸载树,并显示 "failed to umount offset" 错误,从而使挂载树显示为空目录。应用了补丁来删除不正确的使用 autofs dentry mount check,并且上述问题不再发生。
- BZ#927988
- cyclic 添加和删除 st 内核模块可能会导致系统变得无响应。这是因为 SCSI 磁带驱动程序中的磁盘队列引用计数错误导致。上游补丁解决这个程序错误已被向后移植到 SCSI 磁带驱动程序,在这种情况下,系统现在会按预期响应。
- BZ#927918
- 在以前的版本中,在块设备队列被销毁时,blk_get_request ()函数引入了一个新的失败模式,返回 -ENODEV 错误代码。但是,更改不包括函数的所有调用者的 NULL pointer 检查。因此,当从系统中删除块设备时,内核可能会取消引用 NULL 指针,这会导致内核 panic。这个版本应用了一个补丁,它添加了这些缺少的 NULL pointer 检查。另外,blk_get_request ()函数的一些调用者之前可能会返回 -ENOMEM 错误代码,而不是 -ENODEV,这会导致调用链传播不正确。这个版本会应用一个补丁,确保传播正确的返回代码。
- BZ#790921
- 默认情况下,内核使用最佳算法来分配虚拟内存区域(VMAs)将处理的文件映射到地址空间中。但是,如果大量小文件(数以千计或数以百万计)被映射时,地址空间变得非常碎片,从而导致 CPU 使用量和性能下降。在这个版本中引进了可选的 next-fit 策略,如果启用,则允许将文件映射到之前分配的 VMA 后的第一个合适的未使用区域。
- BZ#960717
- 在 "devloss" 超时和发现状态机器之间有一个罕见的竞争条件,可能会在 lpfc 驱动程序中触发一个错误,以相反的顺序嵌套两个级别的 spin 锁定。spin 锁定的反向顺序会导致死锁情况,系统变得无响应。在这个版本中,应用了补丁解决死锁问题,系统在这种情况下不再挂起。
- BZ#922999
- 从上游向后移植块保留功能时出错,这会导致在 rename 系统调用过程中需要分配分配时缺少保留结构。重命名文件系统对象(如文件或目录)需要目标目录的块分配。如果目标目录没有分配保留结构,则会出现 NULL pointer dereference,从而导致内核 panic。在这个版本中,在 rename 操作前分配保留结构,在这种情况下不再发生内核 panic。
- BZ#805407
- 系统可能会因为尝试关闭等待日志 I/O 完成的 XFS 文件系统而变得无响应。应用了 XFS 代码补丁,允许从不同的上下文中调用关闭方法,以便即使 AIL 之外也可以正确删除 XFS 日志项目,从而解决了这个问题。
- BZ#922931
- dm_btree_remove ()函数中的一个 bug 可能会导致叶值具有不正确的引用计数。移除共享块可能会导致将块视为不再使用的空间映射。因此,向精简设备的共享区域发送丢弃请求可能会破坏其快照。这个程序错误已被解决,以防止在这种情况下崩溃。
- BZ#980273
- 内存映射代码的最新更改引入了一个新的 next-fit 算法,用于分配 VMAs 将处理的文件映射到地址空间。但是,这个更改会破坏特定内部功能的行为,然后始终跟随下一个 VMA 分配方案,而不是 first-fit VMA 分配方案。因此,当使用 first-fit VMA 分配方案时,这个错误会导致线性地址空间碎片,并导致 mmap ()请求早期"-ENOMEM"失败。此补丁将原始的 first-fit 行为恢复到函数,因此不再发生上述问题。
- BZ#922779
- GFS2 丢弃代码没有为扇区大小为 4 KB 的块设备正确计算扇区偏移,这会导致这些设备中的数据丢失和元数据。应用了这个问题的补丁,因此丢弃和 FITRIM 请求现在可以在带有 4 KB 扇区大小的块设备中正常工作。
- BZ#1002765
- 实时(RT)调度程序中的一个错误可能会导致 RT 优先级进程因为运行队列无效属性停止运行。当 CPU 会受到这个程序错误的影响时,迁移内核线程在 CPU 上停止运行,然后被系统迁移到受影响 CPU 的所有其他进程也会停止运行。补丁已应用到 RT 调度程序,RT 优先级进程不再影响此问题。
- BZ#920794
- 当使用 ip 工具的 congestion 窗口锁定功能时,系统可能会变得无响应。这是因为如果拥塞窗口被锁定使用路由指标,则 tcp_slow_start () 函数可能会进入无限循环。已应用一组补丁来遵守上游内核,确保在这种情况下不再出现这个问题。
- BZ#978609
- 在某些情况下,abort task 和 SPP 设备任务管理路径中的竞争条件可能会发生,在某些情况下,会导致驱动程序清理在 SAS 磁盘设备上待处理的超时 I/O 请求。因此,内核从系统中删除这样的设备。应用到 isci 驱动程序的补丁会修复这个问题,即在输入 abort 功能时向 SAS 驱动器发送任务管理功能,且任务还没有完成。现在,在这种情况下,驱动会按预期清理超时的 I/O 请求。
- BZ#920672
- 由于内核的 DMA 初始化代码中的一个竞争条件,来自 hpsa 和 hpilo 驱动程序的 DMA 请求在启用了 IOMMU 功能的 AMD 系统上初始化过程中可能会失败,带有 IO_PAGE_FAULT 错误。为了避免触发这个竞争条件,内核现在仅在初始化单元映射完成后执行 init_device_table_dma ()函数来阻止来自所有设备的 DMA 请求。
- BZ#1003697
- 如果配置的绑定设备上没有以正确顺序启用 arp_interval 和 arp_validate 绑定选项,绑定设备不会处理 ARP 回复,这会导致链接活跃从设备失败和更改。应用一系列补丁,以根据 arp_validate 和 arp_interval 的值修改内部绑定 ARP hook。因此,即使启用了 arp_validate 后设置了 arp_interval,并且 ARP 回复会如预期处理,也会注册 ARP hook。
- BZ#920445
- 当使用 FPU 中止多线程进程时,内核可能会很少终止,而不是创建转储文件。这是因为内核不会等待所有线程都不活跃,并尝试将活跃线程的 FPU 状态转储到触发 BUG_ON ()例程的内存。应用了这个问题的补丁,内核现在会在将 FPU 状态转储到内存前等待线程变得不活跃。
- BZ#962460
- 在以前的版本中,VLAN 设备默认情况下不启用 Generic Receive Offload (GRO)功能。因此,某些网络适配器(如 Emulex Virtual Fabric Adapter (VFA) II (使用 be2net 驱动程序)在启用 VLAN 标记时丢弃数据包,并加载 8021q 内核模块。这个版本应用了一个补丁,它默认为 VLAN 设备启用 GRO。
- BZ#827548
- read_swap_cache_async ()和 Memory 管理(mm)代码中的 get_swap_page ()函数之间的竞争条件可能会导致死锁情况。只有禁用内核抢占功能(!CONFIG_PREEMPT 参数),在支持块 DISCARD 和 TRIM 操作的设备上部署交换分区的系统上可能会出现死锁。如果 read_swap_cache_async () 函数被授予交换缓存中没有页面的 SWAP_HAS_CACHE 条目,则会在 scan_swap_map ()函数中执行 DISCARD 操作。因此,完成 I/O 操作被调度到运行 read_swap_cache_async ()的同一 CPU 的工作队列。这会导致 read_swap_cache_async ()中的线程循环其"-EEXIST"案例中,从而导致系统无响应。这个问题已通过向 read_swap_cache_async ()添加显式 cond_resched ()调用来解决,这允许其他任务在受影响的 CPU 上运行,从而避免死锁。
- BZ#987426
- 当尝试挂载 NFSv4 文件系统,且此操作上的第一次迭代失败时,NFSv4 代码中的死循环错误会导致 NFSv4 挂载进程在 LOOKUP_ROOT 操作的忙碌循环操作中挂起。应用了补丁,允许正确退出 LOOKUP_ROOT 操作,挂载尝试现在可以成功或在这种情况下失败。
- BZ#828936
- OProfile 工具中的一个错误会导致在卸载 OProfile 内核模块时导致 NULL pointer dereference,这会导致内核 panic。如果内核是使用 nolapic 参数集运行的,并且 OProfile 被配置为使用 NMI 计时器中断,则会触发此问题。这个问题已通过在初始化 OProfile 时正确设置 NMI 计时器来解决。
- BZ#976915
- 在以前的版本中,NFS 客户端在向 NFS 服务器发送 LOCKU 和 RELEASE_LOCKOWNER 操作前不会等待完成未完成的 I/O 操作。因此,如果服务器在某些相关 READ 操作前处理 LOCKU 和 RELEASE_LOCKOWNER 操作,它会释放与请求的锁定所有者关联的所有锁定状态,并且 READs 返回 NFS4ERR_BAD_STATEID 错误代码。这会导致在系统日志中生成 "Lock reclaim failed!" 错误消息,且 NFS 客户端必须从错误中恢复。应用了一系列补丁,确保 NFS 客户端会在释放锁定前等待所有未完成的 I/O 操作完成。
- BZ#918239
- 当 Red Hat Enterprise Linux 6 内核作为虚拟机运行时,它会执行 hypervisor 的引导时检测,以启用特定于 hypervisor 的优化。Red Hat Enterprise Linux 6.4 引入了 Microsoft Hyper-V hypervisor 的检测和优化。以前 Hyper-V 是首先检测到的,因为有些 Xen 虚拟机监控程序可以尝试模拟 Hyper-V,因此当模拟没有准确时,这可能会导致引导失败。应用了补丁,以确保在 Hyper-V 之前尝试检测 Xen,从而解决这个问题。
- BZ#962976
- 如果审计队列太长,内核会调度 kauditd 守护进程,以缓解审计队列的负载。在以前的版本中,如果当前审计进程在这样的情形中有任何待处理的信号,它会在审计日志超时的持续时间内输入忙碌循环,因为 wait_for_auditd ()函数被调用为中断任务。这可能会导致系统锁定在非抢占的 uniprocessor 系统中。在这个版本中,通过将 wait_for_auditd ()设置为 uninterruptible 解决了这个问题。
- BZ#833299
- 由于固件中的一个错误,如果"intel_iommu=on"和"iommu=pt"kernel 参数指定了 "intel_iommu=on" 和 "iommu=pt"kernel 参数,使用 LSI MegaRAID 控制器的系统无法在 kdump 内核中初始化这个设备。作为临时解决方案,在固件修复可用前,对 megaraid_sas 驱动程序的补丁已被应用,如果固件在第一次尝试初始化控制器时处于 ready 状态,则驱动程序会重置控制器并重试固件过渡到 ready 状态。
- BZ#917872
- 端口自动选择代码中的以前的更改允许共享端口,而不扩展其使用。因此,当启用 SO_REUSEADDR 套接字选项绑定套接字绑定时,bind (2)功能可以分配已经使用的临时端口。当出现 EADDRNOTAVAIL 错误代码时,后续的连接尝试会失败。这个版本应用了修改端口自动选择代码的补丁,以便 bind (2)现在选择一个非冲突端口,即使启用了 SO_REUSEADDR 选项。
- BZ#994430
- 以前对网桥多播代码的补丁引入了一个 bug,允许在收到 IPv6 多播查询时为多播组重新初始化活跃的计时器。补丁已应用到网桥多播代码,因此当网桥多播计时器处于活动状态时,不再重新初始化它。
- BZ#916994
- 在使用多个 iSCSI、FC 或 SRP 路径连接 iSCSI 启动器和 iSCSI 目标的系统上,内核 panic 可能会发生。这是因为 SCSI 驱动程序中的一个竞争条件允许在处理其运行队列前从系统中删除 SCSI 设备,这会导致 NULL pointer dereference。SCSI 驱动程序已被修改,现在通过在激活时保留对 SCSI 设备运行队列的引用来避免竞争。
- BZ#994382
- 内核的 md 驱动程序包含多个程序错误,包括 raid10 代码中的一个 use-after-free 错误,这会导致内核 panic。另外,在 raid5 代码中发现数据崩溃错误。当在 RAID4、RAID5 或 RAID6 阵列中包含的 RAID6 阵列被恢复过程中,会这个错误。应用了一系列补丁来修复已发现的所有错误。md 驱动程序现在包含必要的测试,可防止上述 use-after-free 和数据崩溃错误发生。
- BZ#840860
- sunrpc 代码路径(sunrpc 代码路径)对速度进行高度优化,因此代码避免使用任何锁定机制,但需要精确的操作顺序。发现多个与操作排序相关的错误,这会导致内核崩溃涉及 BUG_ON ()断言,或在 sunrpc 层中使用数据结构不正确。这些问题已通过在 sunrpc 层的 wake-up 代码路径中与 RPC_TASK_QUEUED 和 RPC_TASK_RUNNING 位相关的正确排序操作来解决。
- BZ#916735
- 在 RPC 代码中,当网络套接字因为高网络流量而备份时,会设置计时器,从而导致生成大量网络流量。要防止这个问题,RPC 代码现在会等待套接字为空,而不是设置计时器。
- BZ#916726
- 使用并行 NFS (pNFS)时,当进程在 open ()系统调用过程中获取文件布局信息时,可能会出现内核 panic。应用了补丁来防止这个问题发生。
- BZ#916722
- 在以前的版本中,当处理 open (2)系统调用时,GETATTR 例程不会检查是否也返回有效的属性。因此,open ()调用成功并显示无效的属性,而不是在这种情况下失败。在这个版本中,添加了缺少的检查,open ()调用仅在返回有效属性时才会成功。
- BZ#916361
- crypto_larval_lookup () 函数可能会返回一个 larval,当加密算法被注册时,也会返回一个 in-between 状态,即使它没有创建。这可能导致 larval 终止两次,并导致内核 panic。例如,当 NFS 服务以 FIPS 模式运行时会出现这种情况,并尝试使用 MD5 哈希算法,即使 FIPS 模式有这个算法列入黑名单。在 crypto_larval_lookup () 函数中添加了一个条件,用于检查在返回前是否创建了 larval。
- BZ#976879
- 在以前的版本中,运行大量加载的 NFS 服务器的系统在进行并发修改的大型目录上可能会出现 NFS READDIR 操作的性能,特别是对延迟连接。这是因为 NFS 代码效率低下执行了某些 dentry 操作,并且经常重新验证了目录属性。这个版本应用一系列用来解决问题的补丁;在 READDIR 操作后可以从 dcache 访问所需的 dentries,并且目录属性仅在目录开头或缓存的属性过期后从 dcache 访问。
- BZ#976823
- GFS2 没有为配额更改块保留日志空间,同时增大文件大小。因此,当从二级位映射中分配空闲块时,可能会触发严重的断言导致 GFS2 文件系统的撤回。在这个版本中,GFS2 在日志中为配额更改保留额外的块,因此文件增长的事务现在可以成功完成。
- BZ#976535
- 以前对 CIFS 代码的补丁会导致在某些情况下出现问题,对 CIFS DFS 共享的挂载尝试会失败,并显示 "mount error (6): No such device or address" 错误信息。这是因为在之前的挂载尝试失败后没有正确重置返回代码变量。现在,应用了向后移植补丁来正确地重置变量,并且 CIFS DFS 共享现在可以按预期挂载。
- BZ#965002
- PCI 驱动程序中的一个错误,允许使用指向已释放的虚拟功能(VF)设备条目的指针。因此,当热删除启用了 SR-IOV 设备的 I/O 单元时,会出现内核 panic。这个版本修改了 PCI 驱动程序,因此使用到物理功能(PF)设备条目的有效指针,在这种情况下内核不再 panic。
- BZ#915834
- 如果 IRQ 行与其他设备共享,则 uhci-hcd 内核模块中可能会出现竞争条件。竞争条件允许在数据结构完全初始化前调用 IRQ 处理程序例程,这会导致系统变得无响应。在这个版本中,通过向 IRQ 处理程序例程添加测试条件来解决此问题的补丁;如果数据结构初始化仍在进行中,则处理程序例程会立即完成。
- BZ#975507
- 如果系统运行时间超过 208 天,则在 CPU 加速器中设计的计算可能会造成 set_cyc2ns_scale () 函数中的异常溢出。这个溢出会导致在使用时间戳计数器(TSC)时钟源的系统上出现内核 panic,这主要是使用 Intel Xeon E5 处理器在软电源周期中重置 TSC 的系统。应用了补丁来修改计算,以便在这些情况下不再发生这种算术溢出和内核 panic。
- BZ#915479
- 由于 NFSv4 nfsd 代码中存在一个错误,当 nfsd 为 fsync 操作查找 NFSv4 恢复目录的路径时,可能会解引用 NULL pointer,这会导致内核 panic。这个版本应用了修改 NFSv4 nfsd 代码的补丁,来在 NFSv4 恢复目录中为 fsync 打开文件描述符,而不是查找路径。在这种情况下,内核不再 panic。
- BZ#858198
- 在以前的版本中,绑定和网桥设备不会将 Generic Receive Offload (GRO)信息传递给其从设备,网桥设备也不会将 VLAN 信息传播到其端口。因此,在通过网桥或绑定设备配置的 VLAN 的环境中,网桥和绑定设备上配置的从设备性能非常低。应用了一系列补丁,为绑定和网桥设备添加 GRO 功能,并允许使用参与网桥端口注册 VLAN。如果从设备支持 GRO,则在通过网桥或绑定设备配置的 VLAN 的环境中性能显著提高。
- BZ#975211
- 由于 NFS 代码中的一个错误,内核 size-192 和 size-256 slab 缓存可能会泄漏内存。当对应的 slab 缓存使用大多数可用内存时,这可能会导致 OOM 问题。现在,应用了补丁来解决这个问题,且 NFS 代码中相应的属性可以被正确释放。
- BZ#913704
- 在以前的版本中,NFS Lock Manager (NLM)不会在 NFSv3 服务器重启恢复后重新发送阻塞锁定请求。因此,当应用程序在 NFSv3 挂载上运行并请求阻塞锁定时,应用程序会收到 -ENOLCK 错误。此补丁可确保 NLM 始终在宽限期过期后重新发送阻塞锁定请求。
- BZ#862758
- 当计算 CPU 时间时,utime 和 stime 值会根据 rtime 扩展。在更新之前,utime 值乘以 rtime 值,但可能会出现整数多plication overflow,结果的值可能会截断为 64 位。因此,即使应用程序消耗了大量 CPU 时间,用户空间中的 utime 值也会停止。在这个版本中,会在 stime 而不是 utime 上执行复数。这可显著降低大多数工作负载溢出的可能性,因为 stime 值与 utime 值不同,所以无法快速增长。
- BZ#913660
- 对于损坏的服务器,可以匹配不正确的类型的索引节点(inode)。这会导致 NFS 客户端 NULL pointer dereference,因此是一个内核 oops。要防止这个问题发生,添加了检查来验证 inode 类型是否正确。
- BZ#913645
- 以前应用的补丁在 ipoib_cm_destroy_tx ()函数中引入了一个错误,它允许在列表之间移动 CM 对象,而无需任何支持的锁定。在系统负载过重时,这可能导致系统崩溃。在这个版本中,重新尝试正确锁定 CM 对象来修复竞争条件,系统不会在负载过重时崩溃。
- BZ#966853
- 在以前的版本中,当引导 Red Hat Enterprise Linux 6.4 系统且 ACPI 静态资源关联性表(SRAT)启用了热插拔位时,内核会认为 SRAT 表不正确,并且没有配置 NUMA。这会导致通用保护错误以及系统上发生内核 panic。这个问题已通过在代码中使用 SMBIOS 检查来解决,以避免 SRAT 代码表一致性检查。现在,NUMA 会按预期配置,在这种情况下内核不再 panic。
- BZ#912963
- 在某些服务器上引导正常内核(如 HP originally DL980 G7)时,一些中断可能已经丢失,从而导致系统变得无响应,甚至很少出现数据丢失。这是因为内核在引导过程中没有设置正确的目标模式;当这个系统只支持 "x2apic physical mode" 时,内核会以"逻辑集群模式"引导。这个版本应用一系列已解决问题的补丁。底层 APIC 代码已被修改,x2apic probing 代码现在检查修复的 ACPI Description 表(FADT),并按预期安装 x2apic "physical" 驱动程序。另外,APIC 代码已被简化,代码现在使用探测例程来选择目标 APIC 模式并安装正确的 APIC 驱动程序。
- BZ#912867
- 在以前的版本中,fsync (2)系统调用错误地返回 EIO (Input/Output)错误,而不是 ENOSPC (设备中没有剩余空间)错误。这是因为页面缓存中的错误处理不正确。这个问题已被解决,现在会返回正确的错误值。
- BZ#912842
- 在以前的版本中,如果 NFS RPC 任务正在等待 NFSv4 状态序列化锁可用,且会话插槽由 NFSv4 服务器保存,则可以进入死锁并变得无响应。在这个版本中解决了这个问题,以及 pNFS return-on-close 代码中的可能竞争条件。如果委派调用生效,也已修改 NFSv4 客户端,以不接受委派的 OPEN 操作。现在,当客户端使用 CLAIM_DELEGATE_CUR 开放模式时,客户端还会报告 NFSv4 服务器尝试返回委托。
- BZ#912662
- 由于 CPU 时间的计算方式,在多次运行使用数百个内核线程的 CPU 绑定进程后,可能会出现整数多复处理溢出错误。因此,内核会停止更新 CPU 时间,并提供不正确的 CPU 时间。这可能会混淆用户,并导致各种应用程序问题。在这个版本中,当 stime 和 rtime 值太大时,这个更新会降低计算的精度来解决此问题。另外,一个允许 stime 值被错误计算的错误,因为已修复了 utime 值。
- BZ#967095
- NFS 服务器可能会因为锁定守护进程中个别竞争条件导致的 NULL pointer 解引用而意外终止。一个应用的补丁解决了这个问题,使用 spin locks 保护相关代码,从而避免了锁定的竞争。
- BZ#911359
- eHEA 以太网适配器的虚拟 LAN (VLAN)支持无法按预期工作。运行 "dmesg" 命令时,可能会报告 "device ethX has buggy VLAN hw accel" 信息。这是因为上游向后移植补丁删除了 vlan_rx_register ()函数。在这个版本中,添加了功能回来,eHEA VLAN 支持可以正常工作。这个版本还解决了可能的内核 panic,这可能会在处理接收的 VLAN 数据包时因为 NULL pointer dereference 而发生。补丁添加了一个测试条件,验证 VLAN 组是否由网络堆栈设置,这可防止解引用 NULL pointer,且内核不再在此情形中崩溃。
- BZ#910597
- 内核的 RTAS 实施(RunTime Abstraction Services)之前允许在 PowerPC 和 IBM System p 机器的实时迁移过程中从中断上下文调用 stop_topology_update ()函数。因此,系统变得无响应。在这个版本中,通过在迁移过程早期调用 stop_topology_update ()解决了这个问题,系统在这种情况下不再挂起。
- BZ#875753
- 在 GFS2 文件系统中修剪文件可能会失败,并显示 "unable to handle kernel NULL pointer dereference" 错误。这是因为缺少保留结构,这会导致截断代码引用不正确的指针。要防止这种情况,在对文件进行截断前,会应用补丁来分配块保留结构。
- BZ#909464
- 在以前的版本中,在 Emulex BladeEngine 2 (BE2)控制器上的中断处理中可能会出现竞争条件,从而导致网络适配器变得无响应。这个版本为 be2net 驱动程序提供了一系列补丁,这可防止争用发生。由于处理中断事件错误,使用 BE2 芯片组的网卡不再挂起。
- BZ#908990
- 在以前的版本中,在系统中默认启用 power-limit 通知中断。这可能会导致系统性能降低,甚至会导致系统在某些平台上不可用,如 Dell PowerEdge 服务器。应用了补丁来默认禁用 power-limit 通知中断,并添加了一个新的内核命令行参数 "int_pln_enable",允许用户使用现有系统计数器观察这些事件。在控制台中不再显示电源限制通知消息。由于此问题,受影响的平台不再会降低系统性能。
- BZ#876778
- ipmi_si 驱动程序处理的更改会在 SIG UV 平台上引导 Red Hat Enterprise Linux 6.4 时造成大量延迟。这个驱动程序在 Red Hat Enterprise Linux 6 的早期版本中作为内核模块加载,同时现在在内核中构建。但是,SIG UV 不使用,因此不支持 ipmi_si 驱动程序。应用了补丁,内核现在在 SIG UV 上引导时不会初始化 ipmi_si 驱动程序。
- BZ#908851
- 在以前的版本中,队列限制不会被保留,因为如果设备不包含任何数据,或者多路径设备暂时丢失所有路径,则它们应该被保留。这个问题已通过避免调用 dm_calculate_queue_limits ()函数来解决。
- BZ#908751
- 将虚拟 PCI 设备(如 virtio 磁盘、virtio 网络、e1000 或 rtl8139)添加到 KVM 客户机时,kacpid 线程会重新报 PCI 总线上所有设备的热插拔参数。当重新提升 VGA 或 QXL 图形设备的热插拔参数时,图形设备模拟请求清除客户机的 shadow 页表。在以前的版本中,如果客户机有大量且复杂的 shadow 页面表,清除操作需要大量时间,且客户机在几分钟后可能会变得无响应。这会导致超过"软锁定" watchdog 和 "BUG: soft lockup" 事件的阈值,guest 和主机内核都会记录。这个版本应用一系列处理此问题的补丁。KVM 的内存管理单元(MMU)现在避免在支持扩展页表(EPT)的处理器中创建多个页表 root。这可防止 guest 的影子页表在支持 EPT 的机器上变得过于复杂。MMU 现在只清除大型内存映射,这可减少处理器不支持 EPT 的机器上的情况。另外,解决了防止 KVM MMU 释放内存页面的空闲内存核算争用。
- BZ#908608
- 某些 CPU 包含在线虚拟机控制结构(VMCS)缓存,用于保留由 KVM 模块管理的活跃 VMCS。这些 VMCS 包含 KVM 操作的客户机机器的运行时信息。这些 CPU 需要支持 VMCLEAR 指令,以允许将缓存的内容清空到内存中。内核之前没有在 Kdump 中使用 VMCLEAR 指令。因此,当转储 QEMU KVM 主机的核心时,相应的 CPU 不会清空到内存,客户机的运行时信息不包含在内核转储中。这个问题已通过一系列补丁解决,它们实现了在 Kdump 中使用 VMCLEAR 指令的支持。现在,如果 CPU 需要,内核会在 Kdump 中执行 VMCLEAR,因此 QEMU KVM 主机的 vmcore 文件会按预期包含所有 VMCS 信息。
- BZ#908524
- 当使用 pNFS (并行 NFS)代码时,在尝试恢复服务器重启时,文件锁定过程可能会进入死锁。这个更新引入了一个新的锁定机制,可以避免在这种情况下死锁的情况。
- BZ#878708
- 有时,irqbalance 工具无法获取 CPU NUMA 节点信息,因为 sysfs 中缺少 CPU 设备的符号链接。在这个版本中,为 sysfs 中的 CPU 设备添加了 NUMA 节点符号链接,这在使用 irqbalance 构建 CPU 拓扑时也很有用。
- BZ#908158
- 虚拟文件系统(VFS)代码在 unlink 和 link 系统调用之间有一个竞争条件,允许创建硬链接来删除(未链接)文件。在某些情况下,这可能导致最终导致文件系统关闭的内节点崩溃。在 Red Hat Storage 对复制 Gluster 卷进行 rsync 操作期间,在 Red Hat Storage 中发现这个问题会导致 XFS 关闭。测试条件已添加到 VFS 代码中,防止创建到已删除文件的硬链接。
- BZ#908093
- 当在 I/O 操作后在 GFS2 文件系统中检测到不一致时,内核会在本地节点上执行撤回操作。但是,在继续撤回操作前,内核之前不会等待 GFS 控制守护进程(gfs_controld)的确认。因此,如果将 GFS2 文件系统与数据存储隔离,则内核不知道这个问题,且在撤回操作成功记录后,可能会执行对共享块设备的 I/O 操作。这可能导致文件系统崩溃,或者阻止节点恢复日志。这个补丁修改 GFS2 代码,因此撤回操作不再进行,而无需 gfs_controld 的确认,GFS2 文件系统在执行撤回操作后不再被破坏。
- BZ#907844
- 如果在启用了精简配置的设备上创建逻辑卷,mkfs.ext4 命令需要很长时间才能完成,并在系统日志中记录以下信息:
kernel: blk: request botched
这是因为丢弃在块和 SCSI 层中无法正常工作的请求合并所致。这个功能已被临时禁用,以防止出现此类问题。 - BZ#907512
- 修改 dcache 和 autofs 代码的以前的补丁会导致回归。由于此回归,在大量 NFS 负载的系统上卸载大量过期的自动挂载会导致软锁定,从而导致系统无响应。如果配置了"软锁定" watchdog,计算机将重启。为修复回归,错误补丁已被恢复,系统现在可以正确处理上述场景,而无需任何软锁定。
- BZ#907227
- 在以前的版本中,当使用并行网络文件系统(pNFS)和数据写入适当的存储设备时,LAYOUTCOMMIT 请求会在内部失败。元数据服务器没有根据写入的数据由修改的布局提供,这些更改对 NFS 客户端不可见。这是因为 LAYOUTCOMMIT 和 LAYOUTRETURN 操作的编码功能被定义为 void,因此返回任意状态。在这个版本中,修正了这些编码功能,以便如预期成功返回 0。存储设备的更改现在传播到元数据服务器,并可如预期观察到。
- BZ#883905
- 当 Active Item List (AIL)为空时,xfsaild 守护进程会移到一个任务 sleep 状态,它依赖于 xfsaild_push ()函数返回的超时值。最新的修改 xfsaild_push ()在 AIL 为空时返回 10-ms 值,这会将 xfsaild 设置为不可中断的睡眠状态(D 状态),以及 artificially 增加系统负载平均值。在这个版本中,通过将 timeout 值设置为允许的最大值 50 ms 来应用这个问题的补丁。这会将 xfsaild 移到可中断的睡眠状态(S 状态),避免对负载平均的影响。
- BZ#905126
- 在以前的版本中,初始化脚本无法正确设置主接口 MAC 地址,因为它会被第一个从 MAC 地址覆盖。要避免这个问题,在将第一个从设备用作其自身之前,会重新引入对未分配的 MAC 地址的检查。
- BZ#884442
- 由于 be2net 驱动程序中的一个错误,在关闭相应队列前,RX、TX 和 MCC 队列中的事件没有被确认。在后续队列打开过程中创建 RX 环时,这可能会导致无法预计的行为。在这个版本中,会应用一个修正这个问题的补丁,这个场景中会按预期确认事件。
- BZ#904726
- 在以前的版本中,mlx4 驱动程序在 mlx4 卡中的多功能模式下将请求的 MSI-X 向量数设置为 2。但是,mlx4 固件的默认设置允许更多的请求的 MSI-X 向量(带有当前固件的 4 个)。这个版本修改了 mlx4 驱动程序,使其使用这些默认固件设置,这可以提高 mlx4 卡的性能。
- BZ#904025
- 从 pNFS (并行 NFS)挂载和取消正在运行的操作中读取大量文件,通过按 Ctrl+C 导致 XDR 代码中的常规保护错误,这会将自身清单为"无法处理内核分页请求"消息的内核 oops。这是因为解码 LAYOUTGET 操作是由 worker 线程完成的,调用者会等待 worker 线程完成。当读取操作被取消时,调用者会停止等待并释放页面。因此,当 worker 线程在 XDR 代码中调用相关函数时,页面不再存在。这些页面的清理过程已移到代码中的不同位置,这样可防止内核在这种情况下发生。
- BZ#903644
- 以前对 mlx4 驱动程序的补丁启用了内部回环,允许同一主机上的功能间通信。但是,这个更改引入了一个回归,它导致使用 Mellanox 以太网适配器的虚拟交换机(vSwitch)网桥设备,因为在某些情况下在原生(非SRIOV)模式下出现 uplink 变得无法正常工作。要解决这个问题,目的地 MAC 地址被写入仅以 SRIOV 或 eSwitch 模式传输的数据包的 Tx 描述符,或者在设备自我测试过程中写入。在上述设置中,uplink 流量可以正常工作。
- BZ#887006
- Intel 5520 和 5500 芯片组无法正确处理 MSI 和 MSI-X 中断的重新映射。如果在具有此类芯片组的系统上启用了中断重新映射功能,则可能会出现各种问题和服务中断(例如,NIC 可能会停止接收帧),"kernel: do_IRQ: 7.71 No irq handler for vector (irq -1) " 错误消息会出现在系统日志中。这个问题的一个临时解决方案是,建议在此类系统上的 BIOS 中禁用中断重新映射功能,许多供应商都已更新其 BIOS 以禁用中断重新映射。但是,如果没有使用此功能正确关闭的 BIOS 级别,用户仍会报告这个问题。因此,这个更新会修改内核来检查这些系统上是否启用了中断重新映射功能,并为用户提供一个警告信息,让用户在关闭该功能后关闭该功能并更新 BIOS。
- BZ#887045
- 当引导使用大量 CPU (超过 512)的 Red Hat Enterprise Linux 6 系统时,系统可能无法引导,或者在初始化后显示无响应。这是因为 CPU 频率驱动程序使用常规 spin 锁定(cpufreq_driver_lock)来序列化频率转换,在某些情况下,这个锁定可能会成为系统初始化和操作过程中大量竞争的来源。应用了补丁,将 cpufreq_driver_lock 转换为读写锁,该锁定可以解决竞争问题。所有 Red Hat Enterprise Linux 6 系统现在都引导并按预期运行。
- BZ#903220
- 与上游内核中找到的 IFLA_EXT_MASK Netlink 属性分配不同的值,对内核的以前的补丁引入了一个程序错误。这可能会导致各种问题,例如,针对上游标头编译的二进制代码可能会在 Red Hat Enterprise Linux 6.4 及更新的版本中意外出现或者意外行为。在这个版本中,通过与上游同步 IFLA_IFLA_EXT_MASK 可以正确地进行枚举。这样可确保根据 Red Hat Enterprise Linux 6.4 内核标头编译的二进制文件可以正常工作。保证向后兼容。
- BZ#887868
- 由于 SCTP 代码中的一个错误,在释放被哈希的 SCTP 关联时可能会出现 NULL pointer dereference,从而导致内核 panic。补丁解决了这个问题,方法是在释放和问题不再发生前尝试取消哈希 SCTP 关联。
- BZ#888417
- 在以前的版本中,使用带有 Data Integrity Field (DIF)类型 2 保护的 SCSI sd 驱动程序的机器上可能会出现内核 panic。这是因为 scsi_register_driver () 函数注册了 prep_fn ()函数,它可能需要为 DIF 功能使用 sd_cdp_pool 变量。但是,此时尚未初始化该变量。底层代码已被更新,因此驱动程序是最后注册的,这可以防止内核 panic 发生。
- BZ#901747
- bnx2x 驱动程序可能之前报告了 occasional MDC/MDIO 超时错误,以及链接连接的丢失。这在使用较旧的引导代码的环境中会出现这种情况,因为 MDIO 时钟是在每个引导代码序列开始时设置的,而不是每个 CL45 命令。要避免这个问题,bnx2x 驱动程序现在为每个 CL45 命令设置 MDIO 时钟。另外,每个 EMAC 注册都会实施 MDIO 时钟,而不是每个端口号,这样可防止端口对不同的 PHY 访问使用不同的 EMAC 地址。另外,需要引导代码或管理固件(MFW)升级,以防止在驱动程序的 pulse 延迟时引导代码(firmware)接管链接所有权。BCM57711 卡需要引导代码 6.2.24 或更高版本,BCM57712/578xx 卡需要 MFW 版本 7.4.22 或更高版本。
- BZ#990806
- 当审计子系统负载过重时,它可能会在 audit_log_start () 函数中循环,而不是切换到错误恢复代码。这会导致在内核中软锁定。在这个版本中,audit_log_start () 函数中的超时条件已被修改,以便在需要时正确故障切换。
- BZ#901701
- 之前的内核更新 broke 队列对(qp)哈希列表在 qp_remove ()函数中删除。这可能会导致 InfiniBand 堆栈或 QLogic InfiniBand 驱动程序中的常规保护错误。应用了补丁来恢复以前的行为,因此不再发生常规保护错误。
- BZ#896233
- 在个别情况下,如果 TCP 重新传输被部分确认并折叠,使用的 Socked Buffer (SKB)可能会因为传输头条导致的溢出而被破坏。这会导致内核 panic。在使用 IP-over-InfiniBand (IPoIB)连接时,这个问题很少。这个版本会应用一个补丁,验证传输头条是否超过已使用 SKB 的最大大小,如果是,则会重新分配头条。另外还发现,如果一个恶意的子 MSS 帧和输出接口没有启用序列生成器(SG),则 TCP 堆栈可能会重新对齐 SKB。这个版本引入了一个新的功能,它允许使用新头复制 SKB,因此 SKB 在此情形中保持一致。
- BZ#896020
- 通过 IPv6 使用透明代理(TProxy)时,内核之前为本地接口和同级接口创建了邻居条目,这些条目无法直接访问。在这个版本中修正了这个问题,内核不再创建无效的邻居条目。
- BZ#894683
- 端口自动选择代码中的以前的更改允许共享端口,而不扩展其使用。因此,当启用 SO_REUSEADDR 套接字选项绑定套接字绑定时,bind (2)功能可以分配已经使用的临时端口。当出现 EADDRNOTAVAIL 错误代码时,后续的连接尝试会失败。这个版本应用了修改端口自动选择代码的补丁,以便 bind (2)现在选择一个非冲突端口,即使启用了 SO_REUSEADDR 选项。
- BZ#893584
- 在具有大量读取工作负载的 NFS 客户端上可能会出现超时的情况;例如,使用 rsync 和 ldconfig 时。这个问题都发现了客户端和服务器端原因。在客户端,修复可能会阻止客户端重新连接丢失 TCP 连接的问题。在服务器端,服务器上的 TCP 内存压力强制发送缓冲区大小低于发送单个远程过程调用(RPC)所需的大小,从而导致服务器无法回复客户端。代码修复仍然被考虑。要临时解决这个问题,请增加最小 TCP 缓冲大小,例如:
echo "1048576 1048576 4194304" >/proc/sys/net/ipv4/tcp_wmem
- BZ#895336
- Broadcom 5719 NIC 以前可能会因为 cyclic 冗余检查(CRC)错误而丢弃收到的巨型帧数据包。在这个版本中,修改 tg3 驱动程序,以便不再发生 CRC 错误,并按预期处理 Broadcom 5719 NIC 进程巨型帧数据包。
- BZ#896224
- 当在 XFS 文件系统上运行小文件的高线程工作负载时,有时,系统可能会变得无响应,或者可能会出现内核 panic。这是因为 xfsaild 守护进程有一个 Stle 代码路径,当 AIL 中的缓冲区已被锁定时,这会导致在 xfsaild 锁定中锁定,并尝试强制日志解锁它。此补丁删除了危险的代码路径,并将日志强制从与 xfsaild 相关的安全锁定上下文调用。此补丁还解决了缓冲区锁定和缓冲区固定状态之间的竞争条件,该状态会在锁定失败后重新检查缓冲区的状态来公开原始问题。在这种情况下,系统不再挂起,内核不再 panic。
- BZ#902965
- 在 NFSv4.1 或禁用委派的情况下从服务器重启时,NFSv4.1 客户端可能会停止响应。这可能是由于在 NFS 代码中锁定不足以及 NFS 和 RPC 调度程序代码中的几个相关错误,这可能会导致死锁问题。这个版本应用了一系列补丁,它可防止出现可能的死锁情况。现在,在上述情况下,NFSv4.1 客户端可以恢复并继续工作负载。
- BZ#1010840
- Red Hat Enterprise Linux 6 中的默认 sfc 驱动程序允许在网络设备上切换 Large Receive Offset (LRO)标志,无论设备是否支持 LRO。因此,当在没有 LRO 支持的设备上启用了 LRO 标志时,该操作无效,并可能会让用户混淆。应用了对 sfc 驱动程序的补丁,以便 sfc 驱动程序可以正确地验证该设备是否支持 LRO。如果设备不支持 LRO,sfc 会禁用 LRO 标志,以便用户无法再为该设备切换它。
- BZ#886867
- 在设备发现过程中,如果系统上没有映射 LUN 0,系统会创建一个带有 LUN ID 0 的临时 SCSI 设备。在以前的版本中,这会导致 NULL pointer dereference,因为临时 LUN 0 设备没有分配 inquiry 数据,这会导致内核 panic。在这个版本中,在底层 SCSI 代码中添加了一个 NULL pointer 测试,在这种情况下,内核不再 panic。
- BZ#886420
- 当网络接口(NIC)以 promiscuous (PROMISC)模式运行时,NIC 可能会接收和处理 VLAN 标记帧,即使没有 VLAN 附加到 NIC。但是,一些网络驱动程序(如 bnx2、igb、tg3 和 e1000e )无法正确处理在 PROMISC 模式中标记帧的数据包(如果帧没有分配 VLAN 组)。驱动程序处理带有错误例程和各种问题的数据包;例如,连接到 VLAN 的 DHCPv6 服务器可能会将 VLAN 池中的 IPv6 地址分配给没有 VLAN 接口的 NIC。要在没有 VLAN 组的情况下正确处理 VLAN 标记帧,因此当 NIC 处于 PROMISC 模式时,帧必须被 VLAN 代码处理,因此当 NIC 处于 PROMISC 模式时,对数据包的 VLAN 组字段的 NULL 值被修改。此更新还包括一个补丁修复一个程序错误,其中 bnx2x 驱动程序在没有在 NIC 上配置 VLAN 标头时不会从帧中剥离 VLAN 标头,以及实现一些寄存器更改的另一个补丁,以便在 NIC 上启用和传输 VLAN 数据包,即使没有用卡注册 VLAN 数据包。
- BZ#988460
- 当从设备启动时,current_arp_slave 参数未设置,但从设备上的活动标记未标记为不活动状态。因此,系统上可能会存在多个带有 active-backup 模式的活跃标记的从设备。应用了补丁来修复这个问题,方法是在当前_arp_slave 参数设置前为从设备标记不活跃的标记。
- BZ#883575
- 由于描述符处理中的一个错误,ioat 驱动程序无法使用 Intel Xeon Processor E5 系列正确处理系统中待处理的描述符。因此,CPU 在这些系统上过度使用。现在,一个补丁已应用到 ioat 驱动程序,因此驱动程序可以正确地决定待处理的描述符,对于描述的处理器系列,CPU 使用量正常。
- BZ#905561
- 网桥多播代码中的以前的更改允许发送常规多播查询,以便在启动时加快聚合。为防止多播路由器干扰,请发送包含零源 IP 地址的数据包。但是,这些数据包会干扰某些多播感知的交换机,这会导致系统使用带有零源 IP 地址的 IGMP 成员资格查询而被大量。一组补丁可以通过默认禁用多播查询并实现多播查询(如果需要的话)来切换常规多播查询,从而解决了这个问题。
- BZ#882413
- 一个程序错误导致了错误的块检测,试图隔离在出现完全故障的设备中出现的块问题 - 即使没有打开错误的块跟踪。这会导致在整个 RAID 设备集合失败时返回 I/O 错误时出现非常大的延迟。大型延迟会在灾难恢复场景中造成问题。现在,当 RAID 阵列中有足够设备失败而无法超过其冗余时,会及时禁用错误的块跟踪代码。
- BZ#876600
- 在以前的版本中,在 MultiVersion 文件系统(MVFS)上运行 "ls", "find" 或 "move" 等命令可能会导致内核 panic。这是因为 d_validate ()函数用于 dentry 验证,调用 kmem_ptr_validate ()函数来验证指向父 dentry 的指针。指针可以随时释放,因此 kmem_ptr_validate ()函数无法保证要解引用指针,这可能会导致 NULL pointer derefence。在这个版本中,修改 d_validate ()以验证 parent-child 的关系,方法是遍历父 dentry 的子 dentries 列表,从而解决这个问题。在上述场景中,内核不再 panic。
- BZ#1008705
- sfc 驱动程序使用 MTD 子系统公开板载分区,必须为每个板公开最多 9 个闪存分区。但是,Red Hat Enterprise Linux 6 中的 MTD 子系统具有 32 个闪存分区的静态限制。因此,如果安装了 3 个板板,Solarflare 工具不能在所有板上操作,防止某些板上的固件被更新或查询版本号。在这个版本中,新的 EFX_MCDI_REQUEST 子命令已添加到 driver-private SIOCEFX ioctl 中,它允许绕过 MTD 层并直接向控制器的固件发送请求。现在可以使用 Solarflare 工具,在这种情况下,所有安装的设备中的固件都可以按预期更新。
- BZ#871795
- 在以前的版本中,VLAN 代码错误地清除使用 igb 驱动程序的网络设备的时间戳中断位。因此,在支持 Precision Time Protocol (PTP)的 igb 网络设备中时间戳会失败。在这个版本中,修改 igb 驱动程序,以便在禁用中断时保留中断位。
- BZ#869736
- 当将超过 4 GB 的 RAM 与 AMD 处理器一起使用时,保留区域和内存漏洞(E820 区域)也可以超过 4 GB 范围。例如,在使用超过 1 TB RAM 的配置中,AMD 处理器为 Hyper Transport (HT)功能保留 1012 GB - 1024 GB 范围。但是,Linux 内核无法正确处理位于 4 GB 范围内的 E820 区域。因此,当在具有 AMD 处理器和 1 TB RAM 的机器上安装 Red Hat Enterprise Linux 时,会出现内核 panic,安装会失败。这个版本修改内核,将位于 4 GB 范围内的 E820 区域从直接映射中排除。内核也不再在引导时映射整个内存,但只找到需要映射的内存范围。系统现在可以成功安装在上述配置上。
- BZ#867689
- ACPI 的内核接口错误地实现了错误消息传递。当系统有有效的 ACPI Error Record Serialization Table (ERST)和 pstore.backend 内核参数已被 pstore 接口禁止使用 ERST 时,会显示以下出错信息:
ERST: Could not register with persistent store
但是,也使用相同的消息来指示阻止注册的错误。系列补丁会修改相关的 ACPI 代码,以便 ACPI 现在可以正确地区分不同的情况,并相应地打印唯一的和信息信息。 - BZ#965132
- 在设置绑定设备时,使用特定的标记来区分 TLB 和 ALB 模式。但是,在 ALB 模式中使用这个标志可让在激活绑定前避免 NIC。这会导致 enslaved NIC 没有唯一 MAC 地址,并会正确丢失发送到从设备的"回复"数据包。此补丁修改负责从 MAC 地址设置的功能,因此不再需要将 ALB 模式从 TLB 中分离出来,并删除了标志。在这种情况下,上面描述的问题不再发生。
- BZ#920752
- 如果只读文件系统上请求了任何写访问,则 do_filp_open ()函数中的一个 bug 会导致它提前退出。这导致在只读文件系统中打开设备节点。在这个版本中,如果对只读文件系统发出写请求,则 do_filp_open ()已被修复,不再退出。
- BZ#981741
- 当负查询后,FUSE 代码中会出现一个 dentry 泄漏,负的 dentry 不会被丢弃,也不会丢弃引用计数器。这会在卸载包含 dentry 的 FUSE 子树时触发 BUG ()宏,从而导致内核 panic。现在,与此问题相关的一系列补丁已应用到 FUSE 代码,现在可以正确丢弃负的 dentries,以避免触发 BUG ()宏。
- BZ#924804
- 这个版本恢复了两个之前包含的 qla2xxx 补丁。这些补丁更改了光纤通道目标端口发现过程,这会导致在某些情况下不会发现一些端口。恢复这两个补丁解决了发现问题。
- BZ#957821
- 由于内存映射代码中的一个错误,fadvise64 ()系统调用有时不会从缓存内存清除给定文件的所有相关页面。通过添加一个测试条件来解决这个问题,它会验证所有请求页面是否已刷新,并在测试失败时尝试清空 LRU pagevecs。
- BZ#957231
- xen-netback 和 xen-netfront 驱动程序无法处理大小为 64 KB (包括标头)的数据包。在决定 GSO 的最大大小时(Generic Segmentation Offload)时,xen-netfront 驱动程序不会考虑任何标头。因此,在发送大于 64 KB 的数据包时,Xen mail guest 操作可能会导致 mail 上的网络 DoS 问题。在这个版本中,添加了一个调整 GSO 最大大小计算的补丁,且问题不再发生。
- BZ#848085
- tty 层中的一个可能的竞争可能会导致触发 BUG_ON ()宏后出现内核 panic。作为临时解决方案,BUG_ON () 宏已被 WARN_ON () 宏替代,这样可避免内核 panic 并进一步调查竞争条件。
- BZ#980876
- 网桥代码中的一个错误允许内部功能调用代码,该代码在保存 spin 锁定时不是 atomic-safe。因此,触发了 "BUG: scheduling while atomic" 错误,以及内核记录的调用追踪。在这个版本中,会应用一个补丁来对功能正常排序,因此函数在调用不是 atomic-safe 的代码时不再包含 spin 锁定。本例中不再会出现带有调用 trace 的错误。
- BZ#916806
- NFSv4 客户端之前,在重启 NFSv4 服务器后,在状态恢复期间输入死锁情况,并处于恢复状态。这是因为客户端没有释放重启前请求的 OPEN 操作的 NFSv4 序列 ID。这个问题已通过在客户端开始等待服务器恢复前释放序列 ID 来解决。
- BZ#859562
- 设备映射器 RAID 内核模块中的一个错误阻止了"sync"指令被遵守。结果是,用户无法强制其 RAID 阵列在需要时完全重新同步。这个问题已被解决,用户可以使用 'lvchange --resync my_vg/my_raid_lv' 来对 LVM RAID 阵列强制进行完全重新同步。
功能增强
- BZ#823012
- 这个版本通过使用 Linux perf 工具访问硬件性能计数器,为 System z 上的软件提供简化的性能分析。
- BZ#829506
- Fnic 驱动程序之前允许带有大于 Cisco UCS Palo 适配器的 SGL 描述符数的 I/O 请求。因此,适配器返回任何超过 256 SGL 描述符的 I/O 请求,并显示无效的 SGLs 错误。补丁已被应用,将 fnic 驱动程序中支持的最大 SGL 数限制为 256,问题不再发生。
- BZ#840454
- 例如,若要传输数据,例如,从客户机到主机,则需要一个低壁通信通道。Linux 内核中的 virtio_console 模块添加了对 splice ()调用的支持。这可让客户机内核数据发送到主机,而无需在客户机内生成数据的额外副本。客户端 Linux 内核和主机用户空间之间的低壁通信通过 virtio-serial 执行。
- BZ#888903
- 新的 MTIOCTOP 操作 MTWEOFI 已添加到 SCSI 磁带驱动程序中,允许使用 "immediate" 位编写"filemarks"。这允许 SCSI 磁带驱动器保留其缓冲区的内容,使下一个文件操作能够立即启动。这可显著提高在将多个小文件写入磁带的应用程序的写入性能,同时也会减少磁带。
- BZ#913650
- 在以前的版本中,用户需要卸载、取消激活其 RAID LV 并重新激活它以便恢复其阵列中临时失败的设备。现在,可以通过运行 'lvchange --refresh' 在不卸载的情况下恢复这些设备。
- BZ#923212
- Open vSwitch (OVS)是一种开源的多层软件交换机,旨在用作虚拟化服务器环境中的虚拟交换机。从 Red Hat Enterprise Linux 6.4 开始,Open vSwitch 内核模块作为 Red Hat Enterprise Linux OpenStack Platform 的驱动者包括在内。Open vSwitch 仅支持包含附带用户空间软件包的红帽产品。如果没有这些软件包,Open vSwitch 将无法正常工作,且不能与其他 Red Hat Enterprise Linux 变体一起使用。
- BZ#928983
- RHEL6.5 bfa 驱动程序更改了 dev_loss_tmo 值的行为,以便只能设置为大于 bfa 驱动程序的 path_tov 值的值。可以设置为 dev_loss_tmo 的最小默认值为 31 秒。在不降低默认的 bfa path_tov 值的情况下,尝试设置 dev_loss_tmo 值低于 31 秒。
- BZ#929257
- 在闪存设备驱动程序中添加了错误恢复支持,它允许硬件服务升级,而不会对闪存设备的 I/O 造成负面影响。
- BZ#929259
- 添加了 crypto 适配器弹性功能。此功能通过全面的故障恢复为加密适配器提供系统 z 典型的 RAS。例如,这个功能处理意外的故障或由 Linux 客户机重新定位导致的更改,挂起并恢复活动或配置更改。
- BZ#929262
- 添加了 "fuzzy live dump" 功能。通过此功能内核转储运行 Linux 系统,允许在不关闭系统的情况下进行问题分析。因为 Linux 系统在写入转储时继续运行,且内核数据结构在转储过程中有所变化,因此生成的转储包含不一致的。
- BZ#929264, BZ#929264
- 内核现在为 DASD 设备提供离线接口。在设置设备离线前,而不是将 DASD 设备离线,并返回所有未完成的 I/O 请求。这个接口可以离线设置 DASD 设备,并将所有未完成的数据写入该设备。
- BZ#929274
- 内核现在提供物理频道 ID (PCHID)映射,该映射启用使用机器范围唯一标识符的硬件检测。
- BZ#929275
- 内核现在提供 VEPA 模式支持。VEPA 模式通过外部交换机在相同大型机上的虚拟机间路由流量。然后,交换机会成为安全、过滤和管理的单一控制点。
- BZ#755486, BZ#755486
- 消息 Transfer Part 3 User Adaptation Layer (M3UA)是一个由 IETF 标准定义的协议,用于传输 MTP Level 3 用户部分使用流控制传输协议(SCTP)而不是电话设备(如 ISDN 和 PSTN)向消息发送信号。在这个版本中,SCTP 包括了 M3AU 测量计数器。
- BZ#818344
- 添加了对未来 Intel 2D 和 3D 图形的支持,以允许使用未来的 Intel 处理器的系统通过红帽硬件认证计划认证。
- BZ#826061
- 在某些存储配置中(例如,带有许多 LUN 的配置),SCSI 错误处理代码可能会花费大量时间发出命令,如 TEST UNIT READY 到无响应存储设备。一个新的 sysfs 参数 eh_timeout 已添加到 SCSI 设备对象中,它允许配置由 SCSI 错误处理代码使用的 TEST UNIT READY 和 REQUEST SENSE 命令的超时值。这可减少检查这些无响应设备所花费的时间。eh_timeout 的默认值为 10 秒,这是在添加此功能前使用的超时值。
- BZ#839470, BZ#839470
- 在这个版本中,Red Hat Enterprise Linux 6 支持 12Gbps LSI SAS 设备。
- BZ#859446
- Red Hat Enterprise Linux 6.5 引入了 Orlov 块分配器,它为真正与彼此相关的文件提供更好的位置,可能一起访问。此外,当资源组高度连续时,会使用不同的组来最大化性能。
- BZ#869622
- mdadm 工具现在支持 RAID0、RAID1、RAID10 和 RAID5 的 TRIM 命令。
- BZ#880142
- 添加了对 OpenStack 的网络命名空间支持。网络命名空间(netns)是基于轻量级容器的虚拟化技术。虚拟网络堆栈可以与进程组关联。每个命名空间都有自己的回环设备和进程空间。虚拟或者实际设备可以添加到每个网络命名空间中,用户可以为这些设备分配 IP 地址,并将它们用作网络节点。
- BZ#908606
- 添加了对动态硬件分区和系统板插槽识别的支持。动态硬件分区和系统板插槽识别功能可提醒高级系统中间件或应用程序进行重新配置,并允许用户在不需要重启的情况下支持额外的工作负载。
- BZ#914771, BZ#920155, BZ#914797, BZ#914829, BZ#914832, BZ#914835
- 根据 Linux 的 IEEE 标准 1588 的 Precision Time Protocol (PTP)的实现是在 Red Hat Enterprise Linux 6.4 中作为技术预览引入。现在,Red Hat Enterprise Linux 6.5 完全支持内核和用户空间的 PTP 基础架构。网络驱动程序时间戳支持现在包括以下驱动程序:bnx2x、tg3、e1000e、igb、ixgbe 和 sfc。
- BZ#862340
- Solarflare 驱动程序(sfc)已更新,以添加 PTP 支持作为技术预览。
- BZ#918316
- 在 Red Hat Enterprise Linux 6.5 中,用户可以将加密哈希功能从 MD5 改为 SHA1 用于流控制传输协议(SCTP)连接。
- BZ#922129
- pm8001/pm80xx 驱动程序添加了对 PMC-Sierra Adaptec Series 6H 和 7H SAS/SATA HBA 卡的支持,以及 PMC Sierra 8081、8088 和 8089 芯片基于 SAS/SATA 控制器。
- BZ#922299
- VMware Platform Drivers Updates The VMware 网络半虚拟化驱动程序已更新至最新的上游版本。
- BZ#922941
- 为将来的 AMD 处理器启用 Error-correcting 代码(ECC)内存。此功能通过访问 ECC 内存相关计数器和状态位来检查性能和错误的功能。
- BZ#922965
- 在操作系统中启用设备支持,用于未来的 Intel System-on-Chip (SOC)处理器。这包括 Dual Atom 处理器、内存控制器、SATA、Universal Asynchronous Receiver/Transmitter、System Management Bus (SMBUS)、USB 和 Intel Legacy Block (ILB - lpc, timers, SMBUS (i2c_801 module))。
- BZ#947944
- 改进了内核共享内存(KSM),以便在协调页面时考虑非统一内存访问(NUMA),这可以提高系统上应用程序的性能。另外,还添加了额外的页面类型,以增加 Red Hat OpenShift 可用的应用程序的密度。
- BZ#949805
- FUSE (用户空间中的文件系统)是一个框架,它允许单纯在用户空间中开发文件系统,而无需修改内核。Red Hat Enterprise Linux 6.5 为使用 FUSE 的用户空间文件系统(如 GlusterFS (Red Hat Storage))提供性能增强。
- BZ#864597
- 对于充分利用以太网链接的高带宽应用,默认的 TCP 堆栈缓冲太大。这可能会导致连接带宽无法完全使用,如果链接由多个客户端设备共享,则可能会意外分发。要解决这个问题,TCP 代码引入了一个新功能 TCP Small Queues (TSQ)。TSQ 功能可减少 xmit 队列、TCP 往返时间(RTT)和拥塞窗口(CWND)大小中的多个 TCP 数据包。它还缓解了可能出现缓冲区问题的影响。这个更改还包括一个补丁,它通过设置 Tx coalescing 的默认值来解决 mlx4 设备中的性能问题。
8.83. kexec-tools
程序错误修复
- BZ#1015764
- 在以前的版本中,在 mkdumprd 工具中,remove_comments ()函数没有正确实现。当参数传递到 strip_comments ()时,它只使用第一个参数来考虑并跳过其余参数。因此,它会将"makedumpfile"参数传递给 $config_val 变量,但 "makedumpfile" 的参数丢失了。在这个版本中,remove_comments () 函数已被修改。因此,它不再跳过传递给它的参数。
- BZ#886572
- 当 kdump 文件系统位于另一个独立和加密设备的逻辑卷或者卷组中时,mkdumprd 工具会在尝试访问加密设备时退出并显示错误消息,防止 kdump 正确运行。现在,提供了一个补丁来解决这个问题,kdump 现在会在上述场景中被正确地重新配置并重启,从而解决了这个问题。
- BZ#920705
- 某些多端口网卡为所有端口返回相同的 PCI 总线地址。当 kdump 实用程序映射网络端口时,它无法将一个网络端口与这些卡上的另一个网络端口区分开。因此,当不同的网络端口位于不同的网络中时,kdump 无法通过 NFS 或 SSH 转储数据。在这个版本中,确保在上述场景中设置了 MAP_NET_BY_MAC 变量,kdump 现在会根据预期转储所有端口的数据。
- BZ#883543
- 在以前的版本中,98-kexec.rules 文件中的 udev 规则生成重启每个内存的 kdump 工具的进程。要修复这个错误,在尝试重启之前运行的服务时会使用 "condrestart" 参数。因此,当不需要重启时,kdump 不再重启。
- BZ#921142
- 在以前的版本中,extra_modules 列表中的内核模块会被内置黑名单覆盖。因此,kdump 无法加载 mlx4_core 和 mlx4_en 模块,并使用这些模块通过网卡转储数据。在这个版本中,如果 extra_modules 列表中的模块按预期使用,则不会排除 extra_modules 列表中的模块。
- BZ#1008543
- 在以前的版本中,在 makedumpfile 中,dumpfile 标头有一个从已弃用的 "diskdump" 工具继承的字段。crash 实用程序使用字段作为分隔符,来确定物理地址读取请求是否合法。该字段无法处理大于 32 位的物理帧号(PFN)值,且这些值已被截断。在这个版本中,在标头中添加三个新字段。因此,makedumpfile 标头正确地了大于 32 位的 PFN 值。
- BZ#876667
- 在以前的版本中,对于某些内核模块,"modprobe --show-depends"命令的输出没有每行的"insmod"前缀。因此,mkdumprd 工具无法加载,因为当前代码假定每行都以"insmod"前缀启动。代码已被修改,仅匹配以 awk 脚本中的"insmod"开头的行。因此,在这种情况下,mkdumprd 不再无法加载。
- BZ#1009207
- 在以前的版本中,在 cyclic 模式中,makedumpfile 会错误地计算 cyclic 缓冲大小的大小。因此,makedumpfile 不会更新页面帧号中周期范围的长度,这会导致缓冲区覆盖或分段违反。另外,由于重新计算中的 divideup ()函数,cyclic 缓冲区大小变得太大一致且效率较低。已提供了一个补丁来修复这些 bug,在这种情况下不再会出现上述问题。
- BZ#1010103
- x86_64 内核是一个可重新分配的内核,在静态分配给内核数据和文本的物理地址之间可能会有差距,以及真正分配给与内核符号对应的对象的地址。差距是 phys_base ()函数。makedump 程序以临时命令的形式计算 phys_base,其比较了在 vmcore 的特定范围内出现的一些"Linux 内核"字符串的地址。因此,makedumpfile 无法计算 phys_base,同时还无法转换 vmcore。这个程序错误已被解决,makedumpfile 可以正确地计算 phys_base,并正常 相反 vmcore。
- BZ#893764
- 在以前的版本中,设置空 Direct Access Storage Device (DASD)选项,从 /etc/dasd.conf 文件中解析,这会导致显示环境变量。因此,重启 kdump 服务会显示完整的 kdump 脚本。在这个版本中,如果没有在 /etc/dasd.conf 文件中为设备指定任何选项,kdump 脚本会进入下一个选项。因此,重启 kdump 服务不再显示完整的 kdump 脚本。
- BZ#918372
- 在以前的版本中,在原始设备上写入的 kdump 数据不会被完全清除。因此,保存的 vmcore 有时不完整。此更新使用 blockdev 工具清除块设备缓冲区。因此,在原始设备上保存的 vmcore 现在总是完成。
- BZ#903529
- 在以前的版本中,因为 Storage Class Memory (SCM)设备没有公开与小型计算机系统接口(SCSI)磁盘相同的 sysfs 属性,所以 mkdumprd 工具无法决定写入转储文件的"关键磁盘"列表。因此,某些 SCM 设备没有被 mkdumprd 正确处理,从而导致在这样的设备中尝试将文件系统指定为 kdump 目标时产生无限循环。在这个版本中,mkdumprd 根据设备的存储递增地址处理等待 SCM 设备,属性会在重启后唯一标识 SCM 设备。现在,mkdumprd 可以成功决定用于写入转储文件的"关键磁盘"列表,不再发生无限循环。
- BZ#906601
- 在以前的版本中,在使用多路径支持配置的系统中,mkdumprd 工具会将代码处理多路径设备推送到 kdump initrd。因此,kdump 工具无法在多路径设备中捕获 vmcore。在这个版本中引进了对 kpartx 工具的调用被延迟的机制,直到 "dmsetup ls" 命令列出了与要捕获 vmcore 的多路径设备匹配的设备名称。因此,mkdumprd 现在会等待多路径设备被创建,然后成功捕获 vmcore。
- BZ#977651
- 在以前的版本中,当 Red Hat Enterprise Linux 配置为使用 hugepages 参数时,kdump 内核也会使用这个参数。因此,由于其内存有限,使用巨页可能会导致 kdump 内核出现内存不足(OOM)错误。在这个版本中,当 Red Hat Enterprise Linux 使用时,kdump 内核不会使用 hugepages 和 hugepagesz 内核参数。如果用户希望在 kdump 内核中明确使用巨页,可以通过 /etc/sysconfig/kdump 文件中的 KERNEL_COMMANDLINE_APPEND 选项指定。
- BZ#963948
- 在以前的版本中,当添加 VMware 客户机额外 RAM 时,kdump.init 脚本的多个实例会被同时启动。因此,kdump.init 实例会发生竞争条件。通过引入全局 mutex 锁定,现在只有一个实例可以获取此锁定并运行,其他实例将等待队列中的锁定。因此,kdump.init 实例会按顺序运行,在这种情况下不再发生竞争条件。
- BZ#951035
- 在以前的版本中,当包含 mkdumprd 工具的工具的 e2fsprogs 软件包没有安装在系统上时,mkdumprd 会显示一个误导错误消息。在这个版本中,错误消息已被改进,以明确告知用户缺少这些工具。
功能增强
- BZ#959449
- 在这个版本中,kdump 工具可以通过网络使用任意网桥、绑定或 vlan 名称。现在,可以在不遵循既定的命名约定的情况下为设备命名,例如,绑定设备不需要以"bond"开头。用户可以通过检查 /sys/ 或 /proc/ 目录中是否存在特定目录来确定网络设备是否为绑定、网桥或 vlan。
- BZ#871522
- 有了这个更新,kexec-tools 现在会在 64 位 PowerPC 上构建崩溃内存范围时遵循内存限制。内核通过 /proc/device-tree 文件导出内存限制信息,kexec-tools 现在相应地读取和限制崩溃内存范围。
- BZ#825476, BZ#902147, BZ#902148
- 在 Red Hat Enterprise Linux 6.5 中,makedumpfile 实用程序支持 Lempel-Ziv-Oberhumer (LZO)和 snappy 压缩格式。使用这些压缩格式而不是 zlib 格式会更快,特别是使用随机内容压缩数据时。
- BZ#947621
- 这个版本包括允许在崩溃转储捕获过程中过滤中毒页面的更改。用户现在可以决定是否转储中毒页面。另外,过滤可以提高转储速度。
- BZ#797231
- 在这个版本中,在 kdump 服务启动过程中添加了一个 SELinux 重新标记。kdump 服务现在重新标记在转储路径中具有不正确或缺失的标签的文件。
- BZ#909402
- 在以前的 Red Hat Enterprise Linux 版本中,对 SSH FIPS 模式的支持不完整。在这个版本中,在 kdump 内核中增加了相关的库文件和 5.2.hmac 文件。kdump 工具现在可以在 SSH FIPS 模式下工作。
- BZ#975642
- 在这个版本中,在 mkdumprd (8)手册页中添加了 "-allow-missing" mkdumprd 选项的文档。
8.84. ksh
程序错误修复
- BZ#761551
- 在以前的版本中,ksh shell 不会将任何编辑模式设置为默认,这会导致互动模式中出现各种可用性问题,以及 shell 自动完成功能。在这个版本中,为新用户将 emacs 编辑模式设置为默认设置。因此,可用性显著提高,shell 自动完成功能可以正常工作。
- BZ#858263
- 在以前的版本中,作业的 ksh 内部计数器太小。因此,当脚本在循环中使用多个子 shell 时,可能会出现计数器溢出,从而导致 ksh shell 意外终止分段错误。在这个版本中,ksh 被修改为将较大的类型用于计数器变量。因此,ksh 不再在上述场景中崩溃。
- BZ#903750
- 在以前的版本中,ksh shell 无法正确计算固定大小变量的偏移量。因此,当为较小的变量分配带有固定宽度的 right-justified 变量时,新变量可能具有不正确的内容。在这个版本中,会应用一个补丁来修复这个程序错误,分配现在可以按预期进行。
- BZ#913110
- 在以前的版本中,命令替换的输出并不总是被正确重定向。因此,这里的输出可能会丢失。在这个版本中,命令替换的重定向代码已被修复,here-document 现在会如预期包含输出。
- BZ#921455, BZ#982142
- 使用 ksh 功能、命令别名或自动载入功能中的数组会导致内存泄漏。底层源代码已被修改来修复这个程序错误,在上述场景中不再会出现内存泄漏的问题。
- BZ#922851
- 在以前的版本中,ksh SIGTSTP 信号处理程序可能会触发另一个 SIGTSTP 信号。因此,ksh 可能会进入无限循环。这个版本修复了 SIGTSTP 信号处理和 ksh,现在在没有任何问题的情况下处理信号。
- BZ#924440
- 在以前的版本中,每次需要 ksh shell 时,ksh shell 不会调整文件描述符列表的大小。当使用多个文件描述符时,这可能会导致内存崩溃。因此,ksh 会意外终止。此更新版本会在每次需要时调整文件描述符列表的大小,ksh 不再会在上述场景中崩溃。
- BZ#960034
- 在以前的版本中,ksh shell 忽略了命令行指定的"-m"参数。因此,ksh 没有启用监控模式,用户必须在脚本中启用它。在这个版本中,ksh 不再忽略该参数,以便用户可以从命令行启用监控模式。
- BZ#994251
- ksh shell 无法正确处理管道中的命令替换 I/O 重定向。因此,某些命令的输出可能会丢失。在这个版本中,重定向已被修复,命令输出中不再缺少数据。
8.85. ledmon
8.86. libXcursor
错误修复
- BZ#949586
- 在 libXcursor 的最后重新构建中,Icon Theme 被改为 Adwaita,这在 Red Hat Enterprise Linux 6 中不可用。要解决这个问题,Icon Theme 已被改为 Red Hat Enterprise Linux 6 的 dmz-aa。
8.87. libcgroup
程序错误修复
- BZ#972893
- 在以前的版本中,pam_cgoup 可插拔验证模块(PAM)没有使用缓存。因此,当系统有多个千名用户和 cgrules.conf 文件包含几千个配置设置行时,登录时间可能需要几秒钟。在这个版本中,libcgroup 代码不再为 cgrules.conf 中的每行读取 /etc/passwd 文件,登录时间不再会受到影响。
- BZ#863172
- 在此次更新之前,cgroup 文件没有正确设置写入权限。因此,拥有 cgroup 文件的组成员无法修改其内容。组权限已更新,组成员现在可以修改 cgroup 文件的内容。
- BZ#921328
- 在以前的版本中,打开配置文件时 cgred 服务的行为没有正确设置。因此,如果没有或为空的配置文件,cgred 无法启动。现在,删除了对存在的配置文件的显式检查,现在 cgred 从缺失或空配置文件开始。
- BZ#912425
- cg_get_pid_from_flags () 函数中的代码假定 /etc/cgrules.conf 文件中的每个条目都有指定的进程名称。因此,如果 /etc/cgrules.conf 文件中的条目没有指定进程名称,则 cgred 服务会意外终止,并带有 segmentation 错误。在这个版本中,代码可以接受空进程名称,cgred 不再崩溃。
- BZ#946953
- 在此次更新之前,/bin/cgclassify 文件的权限被错误地设置。因此,在非特权用户运行时,cgclassify 命令的"-sticky"选项会被忽略。/bin/cgclassify 的文件权限已更新,"--sticky"选项现在可以对常规用户正常工作。
- BZ#753334
- 在以前的版本中,不支持在字典分析器中使用逗号。因此,cgconfig 服务无法在 cgconfig.conf 文件中解析逗号。添加了对字典分析器中的逗号的支持,cgconfig 现在可以在 cgconfig.conf 中成功解析逗号。
- BZ#924399
- cgrulesengd 守护进程的默认日志记录级别与库的其余部分不同。因此,日志消息不一致。在这个版本中,cgrulesengd 守护进程和库的日志记录级别已被统一,日志消息现在会如预期保持一致。
- BZ#809550
- 在此次更新之前,cgcreate (1)手册页在 synopsis 中包含无效的 "-s" 选项。在这个版本中,删除了这个选项。
- BZ#961844
- 在以前的版本中,cgred 服务在引导过程中启动太早。因此,如果在 cgred 之前启动一些服务,它们可能会避免受到限制。cgred 的引导优先级已降低,现在所有服务都被正确限制。
功能增强
- BZ#589535
- 在这个版本中,cgred 守护进程支持针对任何登录的 UNIX 组中的每个用户自动控制组。现在,使用模板来自动创建新的控制组,用户启动的每个进程都会在适当的组中启动,从而更轻松地管理多个用户。
8.88. libdrm
8.89. libguestfs
安全修复
- CVE-2013-4419
- 发现 guestfish,它启用了 shell 脚本编写和命令行访问 libguestfs,不安全地创建用于在服务器模式中存储网络套接字的临时目录。本地攻击者可以使用这个缺陷来截获和修改其他用户的 guestfish 命令,允许他们使用其他用户的特权执行任意 guestfish 操作,或使用此漏洞获取身份验证凭据。
程序错误修复
- BZ#892291
- 在以前的版本中,当 guestmount 工具无法创建硬链接时,会返回不正确的错误消息。因此,有关错误结果的 true 信息不会被显示。在这个版本中,guestmount 中的错误处理已被修复,在上述情况下会显示正确的信息。
- BZ#892834
- 当尝试使用 guestmount 工具重命名符号链接时,guestmount 后跟链接,而不是覆盖它。在这个版本中,添加了一个 guestfs_rename API,它允许 guestmount 正确重命名目标文件。
- BZ#908255
- 不允许使用
guestfs_download
API 或 guestfish 下载命令下载 目录。但是libguestfs
在这种情形中不会返回错误,而丢失协议同步。在这个版本中,libguestfs
会测试下载源是否为目录,如果是,则会返回错误消息。 - BZ#909666
- 在某些情况下,长时间运行的 libguestfs API 调用(生成进度消息)会导致 libguestfs 因堆栈溢出而意外终止。底层源代码已被修改来处理这种情况,且不再发生堆栈溢出。
- BZ#971090
- 在此次更新之前,libguestfs 检查不会检测使用非标准 systemroot 路径的 Microsoft Windows 客户机。有了这个更新,libguestfs 已修改为使用 Windows
boot.ini
文件的内容来查找 systemroot 路径。因此,即使使用非标准 systemroot 路径,也会正确检测到 Windows 客户机。 - BZ#971326
- 在以前的版本中,当没有明确指定目标大小时,libguestfs 不会重新定义 Microsoft Windows NTFS 文件系统的大小。在这个版本中,libguestfs 已被修改为从目标存储设备中自动建立这个大小。现在,即使不指定目标大小,也可以调整 NTFS 文件系统的大小。
- BZ#975753
- virt-resize 在处于不一致状态的 Windows 客户端上会失败。在这个版本中,在 guestfs (3) man page 中添加了此问题的描述。
- BZ#975760
- 如果在添加驱动器时使用
iface
参数,libguestfs 输入一个无限循环。在这个版本中,libguestfs 已被修复,可以正确处理iface
参数,从而防止挂起。 - BZ#980358
- 即使某些 XFS 功能不可用,也可以将调用
guestfs_filesystem_available(g,"xfs")
功能评估为 true。这个问题记录在 guestfs (3) man page 中。 - BZ#980372
- 在此次更新之前,hivex-commit 命令带有相对路径参数被写入用户无法访问的位置。此命令已被修改,需要覆盖原始路径或 NULL 路径。现在,如果将相对路径传递给 hivex-commit,则会显示错误消息。
- BZ#985269
- 使用 libguestfs 设置访问控制列表(ACL)的语法现在记录在 guestfs (3) man page 中。
- BZ#989352
- 当 libguestfs 用于读取没有设置能力的文件的功能时,libguestfs 会返回错误。负责检索文件功能的
guestfs_cap_get_file()
功能已被修改,以便在上述情况下返回空字符串。 - BZ#996039
- 在某些情况下,使用带有 two-
remote
和-add
选项的 guestfish 命令可能会产生意外的结果。这个行为记录在 guestfish (1) man page 中。 - BZ#996825
- 在以前的版本中,当使用 guestfish --remote 命令时,会显示以下信息:
libguestfs: error: waitpid (qemu): No child processes
在这个版本中,这个不必要的信息不再显示。 - BZ#998108
- 在以前的版本中,当 libguestfs 软件包在负载非常重的系统中使用时,有关"不稳定时钟"的消息会出现在调试输出中。在这个版本中,libguestfs 已被修改,以检查 kvmclock 内核功能是否已启用,从而减少了上述消息输出。
- BZ#1000122
- 在此次更新之前,在挂载磁盘前使用 guestfs_ sh 或 sh 命令会导致 guestfish 工具以分段错误终止。有了这个更新,guestfish 已被修改,以便在执行这些命令前是否挂载了文件系统,如果未显示,则会显示错误消息。因此,guestfish 不再在上述场景中崩溃。
8.90. libibverbs-rocee
8.91. libksba
错误修复
- BZ#658058
- 在以前的版本中,/usr/bin/libksba-config 脚本的内容在 32 位和 64 位 libksba-devel 软件包之间冲突。因此,这些软件包无法同时安装。在这个版本中,脚本对所有架构保持一致,从而解决了这个问题。
8.92. libnl
8.92.1. RHBA-2013:1730 - libnl 程序错误修复更新
程序错误修复
- BZ#682240
- 当使用 libvirt 客户端库和工具启动域时,从 libnl 库触发内存泄漏,因为 libnl 继续使用不再使用的内存。在这个版本中,libnl 中的内存泄漏已被修复,并在完成其使用后 libnl 发布内存。
- BZ#689559
- 在此次更新之前,libnl 的错误处理会导致 strerror ()函数的 generous 使用。然而,strerror () 函数不是 threadsafe,应用程序中的多个线程可以调用 libnl。在这个版本中,所有出现的 strerror ()替换为对 strerror_r ()函数的调用,该函数将消息放入线程本地静态缓冲区中。
- BZ#953339
- 当 igb 模块的 max_vfs 参数(分配最大虚拟功能数)被设置为 KVM (基于内核的虚拟机)主机上 50,50 的任何值时,客户机无法使用以下错误消息启动:Error : virNetDevParseVfConfig:1484 : internal error missing IFLA_VF_INFO in netlink 响应Error : virFileReadAll:457 : Failed to open file '/var/run/libvirt/qemu/eth0_vf0': No such file or directory error : virFileReadAll:457 : Failed to open file '/var/run/libvirt/qemu/eth1_vf0': No such file or directory在这个版本中,增加了默认的接收缓冲区大小,允许接收超过内存页面大小的 Netlink 消息。因此,客户机可以在 KVM 主机上启动,在上述场景中不再会出现错误消息。
8.93. libpcap
程序错误修复
- BZ#723108
- 在以前的版本中,libpcap 库为 Berkeley Packet Filter (BPF)基础架构生成了错误的过滤代码。因此,内核中的数据包过滤器丢弃一些应该被用户空间进程接收的数据包。此外,由于 MTU 链接而发生 IPv6 数据包碎片时,tcpdump 工具会生成不正确的输出。要修复这个程序错误,处理 BPF 过滤器生成的代码已被修复,以便在检查最终协议前检查 IPv6 PDU 中的碎片标头。因此,当 IPv6 传输过程中发生源站点碎片时,内核过滤器不再丢弃 IPv6 片段,tcpdump 接收所有数据包。
- BZ#731789
- 在此次更新之前,libpcap 无法打开带有小值 SnapLen 的捕获设备,这会导致 libpcap 返回一个错误代码,tcpdump 会预先退出。内存映射数据包捕获机制的计算结果已被调整,无法截断数据包到比实际 SnapLen 小的值,从而解决了这个问题。因此,当尝试使用小值 SnapLen 打开捕获设备时,libpcap 不再会返回错误,使用 libpcap 来处理数据包。
8.94. libqb
错误修复
- BZ#889299
- 如果指定了字符串的长度或精度,则 Blackbox 窗口管理器的输出不包含日志信息。对于调试目的,这会影响 Blackbox 输出的可用性,特别是与 Pacemaker 集群资源管理器一起使用时。问题是由 strlcpy ()和 strlcat ()函数中的 bug 实现导致的,以及负责 Blackbox 日志格式的代码。在这个版本中修正了这些程序错误,Blackbox 输出现在可以按预期进行格式化。
8.95. libreoffice
程序错误修复
- BZ#820554
- 添加了 "--enable-new-dtags" 标志,以允许某些类型的构建时间回归测试正常工作。因此,GCJ Java complier 无法搜索 Java 库的正确位置。这个版本应用了补丁来删除标志,GCJ 可以正常工作。
- BZ#829709
- 在以前的版本中,LibreOffice 套件没有完全转换为某些本地语言。这个版本提供了 LibreOffice 到本地语言的完整转换。
- BZ#833512
- 在将 OpenOffice.org 套件升级到 OpenOffice 套件时,删除了向后兼容性链接,OpenOffice.org 图标没有迁移到 LibreOffice。因此,尝试启动 LibreOffice 失败并显示错误。在这个版本中,兼容性链接已被恢复,图标现在可以正常工作。
- BZ#847519
- 由于 Chart 创建代码中的一个错误,在某些情况下尝试创建 chart,因为分段错误会失败。底层源代码已被修改来修复这个程序错误,Chart 创建现在可以正常工作。
- BZ#855972
- 由于底层源代码中的一个错误,尝试显示 Impress 工具中的概述视图意外终止。这个版本应用了补丁来修复这个程序错误,概述视图不会在上述场景中崩溃。
- BZ#863052
- Microsoft Office 套件的特定版本包含不匹配的内部时间戳字段。在以前的版本中,LibreOffice 套件检测到这些字段并返回异常。因此,用户无法打开特定的 Microsoft Office 文档。在这个版本中,LibreOffice 已被修改,忽略不匹配的时间戳字段和 Microsoft Office 文档可以如预期打开。
- BZ#865058
- 当在文件中指定了大量用户定义的数字格式时,这些格式使用表中的所有可用插槽,并用于剩余的通用格式。因此,在载入该文件过程中,某些单元格式不会保留。在这个版本中,提供了一个补丁,单元格式可以正常工作。
- BZ#871462
- Libreoffice 套件包含许多用于测试目的的无害文件。在以前的版本中,在 Microsoft Windows 系统上,这些文件可能会在各种 anti-virus 软件(如 Microsoft Security Essentials)上触发假警报。例如,在扫描 Red Hat Enterprise Linux 6 ISO 文件时可能会触发警报。底层源代码已被修改来修复这个程序错误,文件不会在上述场景中触发假警报。
- BZ#876742
- 由于表的实施不足,Impress 工具会在每个操作过程中制作表的内部副本。因此,当表示包含大型表时,操作会非常慢。这个版本提供了一个补丁来优化表内容遍历。因此,在上述场景中操作可以更快地进行。
- BZ#902694
- 在以前的版本中,键盘快捷方式映射会自动格式。因此,在某些语言中建议不存在的键作为快捷方式。在这个版本中,提供了一个补丁来修复这个错误,受影响的快捷方式会被手动映射。
8.96. librtas
8.96.1. RHEA-2013:1733 - librtas 增强更新
功能增强
- BZ#985850
- 在这个版本中,增加了对通过 PRRN 接口的动态内存关联性的用户空间解决方案的支持。当分区关联性因系统优化而改变时,受影响的分区将通过 event-scan RTAS 调用来通知,分区的关联性属性已更改。因此,分区应该通过现有的 RTAS/hidden h_calls 刷新其关联性字符串。
8.97. libtevent
程序错误修复
- BZ#975489
- 在此次更新之前,轮询后端中的一个条件将 64 位变量复制到未签名的整数变量中,该变量小于 32 位构架中的 64 位。在条件中使用未签名的整数变量会使条件始终为 false。变量格式已更改为 uint64_t 格式,保证其宽度为所有架构上的 64 位。现在,条件会产生预期的结果。
- BZ#978962
- 在以前的版本中,tevent_loop_wait () 函数在内部注册了自己的信号处理程序,即使它还没有被删除。因此,即使没有注册的自定义处理程序,tevent_loop_wait ()也无法结束。这个版本应用了补丁来修复这个程序错误,tevent_loop_wait ()现在可以正常工作。
8.98. libvirt
程序错误修复
- BZ#846013
- 在以前的版本中,由于几个问题,在迁移过程中无法正确处理 IPv6。在这个版本中,迁移会在上述场景中成功。
- BZ#847822
- 如果没有手动配置,远程驱动程序不支持连接到 libvirtd 守护进程的会话实例。此行为可能会混淆用户,试图使用这样的配置。在这个版本中,libvirt 不允许没有必要的手动配置的连接。
- BZ#851075
- 在以前的版本中,libvirt 库缺少 ESX 环境的驱动程序实现。因此,用户无法为 ESX 客户机配置任何网络。网络驱动程序已经实现,用户现在可以按预期为 ESX 客户机配置网络。
- BZ#882077
- 在以前的版本中,libvirt 在创建快照失败时报告原始 QEMU 错误,并且提供的错误消息可能会造成混淆。在这个版本中,当 QEMU 无法创建快照时,libvirt 会给出一个清晰的错误消息。
- BZ#888503
- AMD 系列 15h 处理器 CPU 架构 “由模块” 组成,后者表示为单独的内核和单独的线程。在其中一种方法之间进行选择所需的管理应用程序,libvirt 没有提供足够的信息来执行此操作。此外,管理应用程序无法代表 AMD 系列 15h 处理器内核中的模块,具体取决于他们的需求。现在,能力 XML 输出包含有关处理器拓扑的更多信息,以便管理应用程序可以提取所需信息。
- BZ#892079
- 在以前的版本中,libvirtd 守护进程无法为运行客户机代理服务的 Microsoft Windows 客户机执行 s3 或 s4 操作。因此,这会导致 “域 s4 失败” 错误信息,因为域被销毁。在这个版本中,客户机被成功销毁,libvirtd 不再崩溃。
- BZ#894723
- 虚拟机(VM)可以保存到压缩文件中。在以前的版本中,当 libvirt 尝试恢复虚拟机时,当解压缩该文件时,libvirt 会从正在运行的虚拟机列表中删除虚拟机。但是,它不会删除对应的 QEMU 进程。在这个版本中,QEMU 进程会在这种情况下被终止。此外,现在忽略非严重的解压缩错误,如果出现此类错误,可以成功恢复虚拟机。
- BZ#895294
- 当为该接口设置了引导顺序时,使用 virDomainUpdateDeviceFlags API 更新网络接口会失败。即使在提供的设备 XML 中设置引导顺序,更新也会失败。virDomainUpdateDeviceFlags API 已被修复,从所提供的设备 XML 中正确解析引导顺序规格,并使用引导顺序更新网络接口现在可以正常工作。
- BZ#895340
- libvirt 库允许用户在域的网络接口控制器(NIC)上设置服务质量(QoS)。但是,由于实施中有一个错误,某些值没有正确设置。因此,实际的吞吐量与域 XML 中设置没有对应。底层源代码已被修改,从 XML 设置正确的值,吞吐量现在与 XML 中设置的值对应。
- BZ#895424
- Red Hat Enterprise Linux 6 中的 QEMU 不支持热拔 vCPU。因此,尝试使用此功能会失败,但 libvirt 库记住的处理器数量被更新为新的数字并记住。在这个版本中,libvrit 会验证 QEMU 是否实际取消插入 CPU,以便仅在拔出成功时更新内部信息。
- BZ#895826
- 在以前的版本中,当迁移失败时,目标主机开始重新标记文件,因为它不再使用它们。但是,此行为会影响源主机,该主机仍在运行。因此,客户机可能会丢失写入磁盘的能力。这个版本应用了补丁来修复这个程序错误,以便在上述场景中不再重新标记使用的文件。
- BZ#895882
- libvirt 库的 Python 绑定包含 virDomainSnapshot 类中的 getDomain ()和 getConnect ()方法的不正确的实现。因此,Python 客户端会意外终止并出现分段错误。Python 绑定现在提供正确的 domain ()和 connect ()accessors,用于获取内部存储在 virDomainSnapshot 实例中的 Python 对象,不再会发生崩溃。
- BZ#896013
- 在以前的版本中,libvirt 库添加了存储文件后备链的缓存,而不是重新发现每个操作的后备链详情。然后,这个缓存用于决定要为 sVirt 标记的文件,但当 libvirt 切换到使用缓存时,只有在使用内核控制组(cgroups)时才会填充代码。在不使用 cgroups 的设置中,sVirt 无法正确标记后备链文件,因为缺少后备链缓存信息。这个行为导致客户机观察到的回归无法运行。现在,填充缓存在流程早期移动,与 cgroups 无关,缓存会产生更高效的 sVirt 操作,现在可以正常工作是否 cgroups 是否生效。
- BZ#903238
- 有时,当用户运行多个 virsh create 或destroy 循环时,可能会出现竞争条件,libvirtd 守护进程会意外终止并出现 segmentation 错误。与已经销毁了调用者的域相关的错误错误消息。在这个版本中,概述的脚本会被运行并完成,而不会 libvirtd 崩溃。
- BZ#903248
- 在以前的版本中,libvirt 库后的相对后备链与 QEMU 不同。这会导致在 libvirt 无法遵循链时缺少 sVirt 权限。有了这个更新,在 libvirt 和 QEMU 中,相对备份文件的处理现在相同,VDSM 使用相对后备文件可以正常工作。
- BZ#903433
- 当启用了内核控制组(cgroups)时,在 cgroup 中移动任务可能会发生很少的情况,从而导致竞争条件。因此,在使用 virsh 工具重复 start 和 stop 命令后,客户机可能无法启动。在这个版本中,处理线程组的代码已被优化,以防止在从一个 cgroup 移动到另一个 cgroup 时进行竞争,在上述场景中客户机现在会如预期启动。
- BZ#906299
- 当用户运行 Coverity 和 Valgrind 泄漏检测工具时,libvirtd 守护进程中的各种内存泄漏会被发现。这个版本解决了这些问题,libvirtd 不再在上述场景中泄漏内存。
- BZ#908073
- 在以前的版本中,当用户使用 sharable block CD-Rom 启动客户机时,libvirtd 守护进程会因为访问已经释放的内存而意外失败。这个版本解决了上述问题,libvirtd 不再在上述场景中崩溃。
- BZ#911609
- 由于 libvirt 客户端库中出现竞争条件,因此任何使用 libvirt 的应用程序可能会意外终止并出现分段错误。当一个线程执行连接关闭回调时会出现这种情况,另一个线程释放了连接对象,然后访问已经释放的内存。在这个版本中解决了在仍被访问时释放回调数据的可能性。
- BZ#912179
- 当要求创建具有零分配的逻辑卷时,libvirt 库运行 lvcreate 命令以创建没有扩展的卷,这是不允许的。创建逻辑卷失败,libvirt 会返回一个未提及正确错误的错误消息。现在,libvirt 会尝试以最少扩展的数量创建卷,而不是要求不扩展。现在,代码已被修复,在卷创建过程失败时提供正确的错误消息。因此,现在可以使用 libvirt 成功创建具有零分配的逻辑卷。
- BZ#913244
- 如果没有指定 auto-port 和 port,但 tlsPort 属性设置为 “-1”,QEMU 命令行中指定的 tlsPort 参数被设置为 “1”,而不是有效端口。因此,QEMU 会失败,因为它无法在端口上绑定一个套接字。在这个版本中,当前的 QEMU 驱动程序代码被用来使用新的 virPortAllocator API 管理端口保留,QEMU 现在可以在端口上绑定套接字。
- BZ#913363
- 当域的磁盘使用不安全缓存设置时,libvirt 库可能会中止迁移,即使它们没有存储在共享存储中,并且 libvirt 被明确要求复制所有存储。因此,在没有共享存储的情况下迁移只能使用 VIR_MIGRATE_UNSAFE 标志。在这个版本中,安全磁盘缓存设置的测试只仅限于共享存储,因为任何设置对于本地存储的磁盘镜像是安全的。
- BZ#914677
- 在以前的版本中,libvirt 库没有接受在运行内核中缺少 unpriv_sgio 支持,即使不需要。因此,在将主机系统升级到 Red Hat Enterprise Linux 6.5 后,用户无法使用可共享块磁盘设备启动域,除非它们将主机重启到新内核中。在这个版本中,仅在真正需要时才执行对 unpriv_sgio 支持的检查。因此,libvirt 现在能够启动所有不需要非priv_sgio 支持的域,无论主机内核都支持它。
- BZ#916315
- 由于 libvirt 代码中存在一个错误,所以两个 API vidDomainBlockStatsFlags ()和 vidDomainDetachDeviceFlags ()会被同时执行。因此,libvirtd 守护进程会意外终止。底层源代码已被修改,使这些 API 相互排斥,这样守护进程不会再崩溃。
- BZ#917510
- 当带有受管保存镜像的虚拟机(VM)启动时,使用删除受管保存镜像的 “-force-boot” 参数启动,则保存受管保存状态的标记不会被清除。这会导致显示不正确的信息,以及有关 managed stave 状态的一些操作失败。这个程序错误已被解决,现在在上述场景中正确清除了这个标志。
- BZ#920205
- 在迁移结束时,libvirt 在在目标主机上恢复域之前,等待简单协议用于计算环境(SPICE)数据迁移到目标 QEMU。这可显著提高当域没有在任何主机上运行时的等待时间。在这个版本中,底层代码已被修改为不会等待 SPICE 迁移结束。因此,恢复会尽快完成,且没有显著延迟。
- BZ#920441
- 在以前的版本中,QEMU cookie 文件中的 listen 属性被丢弃。因此,如果用户使用不同的网络,一个用于管理和迁移,另一个用于虚拟网络计算(VNC)和 SPICE,则远程主机名通过 client_migrate_info 标志传递给 QEMU。这会导致在迁移虚拟机时 SPICE 客户端断开连接。在这个版本中,远程侦听地址会被传递,在上述场景中 SPICE 客户端不再断开连接。
- BZ#921387
- 由于逻辑存储后端中的 use-after-free 错误,libvirtd 守护进程可能会在删除逻辑存储池时意外终止。底层源代码已被修改,守护进程现在可以在删除逻辑卷时正常工作。
- BZ#921538
- 由于 libvirt 的 RPC 实施客户端中的一个竞争条件,因此服务器关闭的客户端连接可能会释放,即使其他线程仍然等待通过此连接发送的 API 完成。因此,其他线程可能会访问已经释放的内存,客户端会意外终止并出现分段错误。在这个版本中,只有在所有线程处理其 API 调用并向调用者报告错误后,才会释放连接。
- BZ#921777
- 在以前的版本中,处理临时网络时使用的锁定不正确。因此,当定义 API 在临时网络中使用时,网络对象锁定不会按预期解锁。现在,底层源代码已被修改,对象锁定会被正确解锁。
- BZ#922153
- 在以前的版本中,libvirt 库对不应具有的文件发出控制组(cgroup)请求。使用旧的内核时,此类非安全 cgroup 请求会被忽略;但是,较新的内核更严格,从而导致 libvirt 日志记录假的警告,并对 libvirtd 和 audit 日志失败。ausearch 工具显示的审计日志失败类似如下:
root [date] - failed cgroup allow path rw /dev/kqemu
在这个版本中,libvirt 不再尝试非识别 cgroup 操作,在 libvirtd 和 audit 日志中只保留有效的尝试。 - BZ#922203
- 在以前的版本中,libvirt 库在构造审计信息时使用不正确的变量。这会导致审核信息无效,从而导致 ausearch 工具将特定条目格式化为 “path=(null)”,而不是正确的路径。这可以防止 ausearch 查找与 cgroup 设备访问控制列表(ACL)修改相关的事件。在这个版本中,审计信息会被正确生成,从而防止审计覆盖丢失。
- BZ#923613
- 在以前的版本中,virsh (1)手册页中错误地描述了 vol-download 命令。在这个版本中,命令描述已被修复。
- BZ#923946
- 当主机上禁用 SELinux 时,或者 QEMU 驱动程序没有配置为使用它,并且域 XML 配置包含一个显式 seclabel 选项,代码解析 seclabel 选项,但稍后会在域启动时忽略,并创建了新的和空的 seclabel 条目 [seclabeltype='none'/]。因此,运行 Red Hat Enterprise Linux 6.5 的两个主机之间进行迁移会失败并显示以下错误消息:
libvirtError: XML error: missing security model when using multiple labels
在这个版本中,如果 seclabel 条目已存在,则不再创建新条目,在上述场景中迁移可以正常工作。 - BZ#923963
- 在以前的版本中,在特定版本的 Red Hat Enterprise Linux 间,在内核 netlink 协议间有一个应用程序二进制接口(ABI)不一致。当 libvirt 库发送一个 netlink NLM_F_REQUEST 消息,并且使用与运行 libvirt 的机器版本不同版本的内核头文件构建 libvirt 二进制文件时,会返回错误。因此,当使用 [interface type='hostdev'] 选项时,或者 libvirt 网络使用 [forward mode='hostdev'] 选项设置时,SR-IOV 网络设备的 Peripheral Component Interconnect (PCI)透传设备分配会失败。在这种情况下,返回以下出错信息或类似信息:
error dumping (eth3) (3) interface: Invalid argument
在这个版本中,libvirt 为所有内核版本正确重试 NLM_F_REQUEST 消息。现在,单个 libvirt 二进制文件在运行任何 Red Hat Enterprise Linux 6 内核的主机上成功使用 PCI 透传为客户机分配 SR-IOV 网络设备。 - BZ#924571
- 在以前的版本中,当没有指定池的选项时,virsh 工具的 vol-name 命令会打印 NULL 字符串。因此,会返回错误消息,这可能会给用户造成混淆。如果不需要,命令已被修改为不需要指定选项。因此,在上述场景中不再返回错误消息。
- BZ#924648
- QEMU 驱动程序目前不支持增大最大内存大小。但是,这个功能记录在 virsh (1)手册页中。在这个版本中,手册页面已被修正。
- BZ#928661
- 在以前的版本中,代码重构的一部分来修复另一个错误,并保留一个错误清理锁定的情况。因此,libvirtd 守护进程可能会在某些迁移到文件场景时意外终止。在这个版本中,锁定清理路径已被修复,libvirtd 不会在将域保存到文件中时崩溃。
- BZ#947387
- libvirt 库使用侧文件来存储受管域的内部状态,以便在 libvirtd 服务重启时重新读取状态。但是,如果域状态保存在不一致的状态,则状态不会被重新读取,对应的域会丢失。因此,域可能会消失。在这个版本中,当 libvirtd 服务保存域的内部状态时,会保存一致的内部状态,并禁止启动它的域。因此,域不再被忘记。
- BZ#948678
- 在以前的版本中,尝试使用 “virsh vol-create-from” 命令将没有处于 RAW 格式的存储卷从目录池、文件系统池或 NFS 池克隆到 LVM 池,会 “失败并显示未知文件格式” 的错误消息。在这个版本中,通过将输出块设备视为 RAW 文件格式,存储卷现在可以按预期克隆,从而解决了这个问题。
- BZ#950286
- 在某些情况下,连接关闭时,将客户机设置为自动销毁失败。因此,libvirtd 守护进程会意外终止。提供了一系列解决各种崩溃情况的补丁,libvirtd 在自动销毁客户机时不再崩溃。
- BZ#951227
- 当在负载过重的机器上运行 libvirt 测试套件时,测试可能会在死锁中结束。由于测试套件是在 RPM 构建期间运行的,因此如果死锁发生,构建永远不会完成。在这个版本中解决了测试套件中使用的事件循环的处理,测试套件不会在上述场景中挂起。
- BZ#955575
- 在以前的版本中,即使将对应的 ESX 版本 5.1 设置为之前被支持,但 VirtualHW 应用程序版本 9 也不被支持。因此,当连接到使用虚拟HW 版本 9 的客户机的 ESX 5.1 服务器时,会显示以下错误:
internal error Expecting VMX entry 'virtualHW.version' to be 4, 7 or 8 but found 9
在这个版本中,在支持的版本列表中添加了 VirtualHW 版本 9,在这种情况下不再显示上述错误消息。 - BZ#960683
- libvirt 的内部数据结构(保存主机和客户机拓扑信息)的大小有限,以避免对守护进程进行拒绝服务(DoS)攻击。但是,这些限制过于严格,不考虑使用 4096 个 CPU 的主机可能与 libvirt 一起使用。在这个版本中,增加了限制,以便在大型系统上允许可扩展性。
- BZ#961034
- 在此次更新之前,使用 fcntl ()函数的 F_DUPFD_CLOEXEC 操作预期单个参数,指定最小文件描述符(FD)号,但没有提供任何信息。因此,随机堆栈数据以 FD 号形式访问,然后 libvirt 实时迁移可能会意外终止。在这个版本中,确保参数在上述场景中提供,从而解决了这个问题。
- BZ#964359
- 在以前的版本中,libvirtd 守护进程通过对 getpwuid_r ()function 在 fork ()和 exec ()函数之间发出调用来设置子进程的补充组,这可能会导致 mutual 排除(mutex)。因此,如果另一个线程已经在名为 fork ()函数的 libvirtd 中包含 getpwuid_r mutex,则分叉的子进程死锁,从而导致 libvirtd 变得无响应。计算补充组集合的代码已被重构,以便在分叉后不需要 mutex。因此,不再有可能出现死锁情境。
- BZ#965442
- 在以前的版本中,libvirt 库在添加、删除或重新定义卷大小后不会更新池信息。因此,用户必须使用 "virsh pool-refresh" 命令刷新池,以便在这些操作后获取正确的池信息。在这个版本中,在添加、删除或重新定义卷的大小后自动更新池信息。
- BZ#970495
- 在以前的版本中,virsh 工具将 "vol-create" 和 "vol-create-as" 命令的 "--pool" 参数视为池名称。因此,当池由通用唯一标识符(UUID)指定时,vol-create 和 vol-create-as virsh 命令无法正常工作,即使它们被记录接受池规格的名称和 UUID。在这个版本中,virsh 已修复,按名称和 UUID 查找池。因此,两个 virsh 命令现在都根据文档进行操作。
- BZ#971485
- 在以前的版本中,如果用户没有在域 XML 中指定虚拟网络计算(VNC)地址,则会使用 qemu.conf 文件中的地址。但是,在迁移时,在 XML 中直接设置侦听地址或从 qemu.conf 文件中复制时没有区别。因此,无法迁移域。在这个版本中,如果从 qemu.conf 中复制监听地址,它不会传送到目的地。因此,可以成功迁移域。
- BZ#971904
- 在以前的版本中,传递给 libudev 库的 libvirt 库的日志功能无法正确处理具有多个参数的字符串。因此,当 libudev 记录信息时,libvirtd 守护进程可能会意外终止。在这个版本中,libvirt 可以正确地处理多个参数。因此,当 libudev 日志消息时,libvirtd 不再崩溃。
- BZ#975201
- 在以前的版本中,libvirt 库只从 cacert.pem 文件中加载了一个认证机构(CA)证书,即使文件包含多个链的 CA 证书。因此,libvirt 在由中间 CA 证书签名时无法验证客户端和服务器证书,共享一个通用的 ancestor CA。在这个版本中,底层代码已被修复,以载入所有 CA 证书。因此,当客户端和服务器证书由中间 CA 证书签名时,CA 证书验证代码可以正常工作,共享一个通用的先级 CA。
- BZ#975751
- 在以前的版本中,由于加载程序 Hypervisor 版本,许多功能仅适用于只有一个显示的虚拟机。因此,在 QEMU hypervisor 上无法正确定义具有两个显示器的客户机,一些其他功能没有正确考虑使用第二个显示。在这个版本中,能够定义更多显示类型,所有一次性显示假设已在所有相关代码中修复。因此,现在可以定义、正确迁移并启动具有多个显示器的域。
- BZ#976401
- SPICE 协议可以设置为侦听给定 IP 地址,或者从给定网络获取侦听 IP 地址。QEMU 不允许在运行时更改 SPICE 侦听 IP 地址,因此 libvirt 库会使用客户机上的每个用户更新 SPICE 设置来验证此 IP 地址。libvirt 代码中的一个回归错误导致 libvirt 错误地评估此侦听 IP 地址检查用户是否将 SPICE 设置为侦听给定网络,因为用户的 XLM 请求同时包含侦听 IP 地址和网络地址。因此,用户的操作将被拒绝。在这个版本中,libvirt 在将用户请求的 IP 地址与当前侦听 IP 地址进行比较时,也会考虑侦听 IP 地址的类型。现在,在这种情况下,用户可以更新客户机上的 SPICE 设置。
- BZ#977961
- 迁移时,libvirtd 守护进程会泄漏目标客户端上的迁移统一资源标识符(URI)。现在,提供了一个补丁来修复这个错误,迁移 URI 现在被正确释放。
- BZ#978352
- 在此次更新之前,libvirtd 守护进程会泄漏 virCgroupMoveTask ()函数中的内存。提供了一个修复,它可防止 libvirtd 管理内存分配不正确。
- BZ#978356
- 在以前的版本中,libvirtd 守护进程在 virCgroupGetValueStr ()函数中的数组之前访问一个字节。这个程序错误已被解决,libvirtd 现在保留在数组绑定中。
- BZ#979330
- 在以前的版本中,libvirt 库依赖于内核的"更改"通知,以指示它应该更改绑定到设备的设备驱动程序的名称。但是,没有发送此更改通知。因此,"virsh nodedev-dumpxml" 命令的输出始终显示在 libvirt 启动时绑定到该设备的设备驱动程序,而不是当前绑定的驱动程序。这个 bug 已被修复,libvirt 现在在每次执行 "nodedev-dumpxml" 命令时手动更新驱动程序名称,而不是根据更改通知。因此,驱动程序名称形成 "nodedev-dumpxml" 的输出始终正确。
- BZ#980339
- 在以前的版本中,如果在 libvirt 网络定义的 <pf> 元素中给出不正确的设备名称,当客户机尝试使用该网络创建接口时,libvirt 会意外终止。在这个版本中,libvirt 会验证 <pf> 设备名称以验证它是否存在,并且它是支持 sriov 的网络设备。因此,当引用不正确的 <pf> 的网络时,libvirt 不再崩溃。相反,它会记录适当的错误消息并阻止操作。
- BZ#983539
- 在以前的版本中,即使 mount 命令失败,virStorageBackendFileSystemMount () 函数也会返回成功。因此,libvirt 会像运行一样显示池,即使它不可用。在这个版本中,如果 mount 命令失败,则会显示错误。因此,当 mount 命令失败时,libvirt 不再显示成功的信息。
- BZ#999107
- 由于 libvirt 代码中的遗漏,基于 hostdev 的网络的 VLAN 标签(一个网络,通过 PCI 设备分配分配给客户机的 SRIOV 虚拟功能池)没有在硬件设备中正确设置。在这个版本中,提供了缺少的代码,网络定义中设置的 VLAN 标签会在设备分配给客户机时正确显示。
- BZ#1001881
- 在以前的版本中,libvirt 库会错误地尝试对多个 hostdev 网络设备使用相同的别名名称。因此,无法在其配置中启动有多个 hostdev 网络设备的客户机。在这个版本中,libvirt 可确保每个设备都有不同的别名名称。现在,可以在其配置中使用多个 hostdev 网络设备启动客户机。
- BZ#1002790
- virsh (1)手册页中的 blockcopy 命令的描述与 blockpull 命令的描述相同。在这个版本中,提供了正确的描述。
- BZ#1006710
- 在以前的版本中,当使用 "auto" numatune placement 和 "nodeset" 选项解析域 XML 时,nodeset bitmap 被释放两次。因此,libvirtd 守护进程会因为双释放而意外终止。在这个版本中,libvirtd 会在释放后将指针设置为 NULL。因此,libvirtd 不再在这种情况下崩溃。
- BZ#1009886
- 在以前的版本中,由于代码移动,存在一个无效的作业,用于查询 SPICE 迁移状态。因此,当迁移带有独立计算环境(SPICE)无缝迁移的域并使用 domjobinfo 命令同时请求同一域的信息时,libvirtd 守护进程会意外终止。在这个版本中,作业已被正确设置,libvirtd 不会在这种情况下崩溃。
- BZ#1011981
- 当 libvirt-guests 初始化脚本停止时,libvirt-guests 初始化脚本的状态命令会返回 “0” 值,而 Linux 标准基础(LSB)则需要不同的值(“3”)。因此,依赖返回值的其他脚本无法区分服务是否在运行。libvirt-guests 脚本已被修复,符合 LSB,“服务 libvirt-guests status” 命令现在在上述场景中返回正确的值。
- BZ#1013758
- 在以前的版本中,libvirt 库包含一个 heuristic,用于决定 QEMU 进程的最大内存用量的限制。如果达到这个限制,内核会终止 QEMU 进程,域也会被终止。但是,这无法正确猜测。因此,域会随机终止。在这个版本中,Huristic 已被丢弃,域不会再被内核终止。
功能增强
- BZ#803602
- 此功能增强添加了为域的虚拟网络计算(VNC)控制台指定共享策略的功能。QEMU 行为的最新更改(从共享到独占 VNC)会导致某些仅使用共享 VPN 的部署停止工作。使用新属性 “sharePolicy”,用户可以将策略从 exclusive 改为共享,此类部署现在可以正常工作。
- BZ#849796
- 此增强引进了 QEMU 的原生 GlusterFS 支持。用户现在可以将存储在 GlusterFS 卷上的磁盘镜像作为网络磁盘添加到 QEMU 域中。
- BZ#851455
- 由于安全原因,libvirt 库默认使用端口默认为 1023 (“非特权端口”)用于来自客户机的网络流量的网络地址转换(NAT)。但是,有时客户机需要访问仅在使用特权端口时可用的网络服务。此功能增强提供了一个新的元素 & “lt;nat” >,它允许用户同时指定用于 NAT 的网络流量的端口或地址范围。
- BZ#878765
- 在这个版本中,在 virsh (1)手册页中添加了关于 “migrate” 命令的 “migrateuri” 参数缺失的描述。
- BZ#896604
- 有了这个增强,libvirt 库现在支持 ram_size 参数。现在,在一个 Peripheral Component Interconnect (PCI)设备中使用多个头时,用户可以设置 RAM 内存。
- BZ#924400
- QEMU 客户机代理现在支持启用和禁用客户机 CPU。在这个版本中,在 libvirt 库中添加了对这个功能的支持,以便用户现在可以使用 libvirt API 在客户机中禁用 CPU,以满足性能和可扩展性的原因。
- BZ#928638
- 域名系统(DNS)服务器,特别是 root DNS 服务器,不建议转发不是完全限定域名的 DNS 请求,即包括域和主机名。另外,libvirt 启动的 dnsmasq 进程在其虚拟网络上服务客户机都禁止转发此类请求。然而,在某些情况下,这是需要的。在这个版本中,添加了带有非限定域名的上游转发(DNS)请求的权限。libvirt 库现在在其网络配置中提供了一个选项,以允许使用非限定主机名转发 DNS 请求。"forwardPlainNames='yes'" 选项必须作为属性添加到网络的 <dns> 元素中,之后允许转发。
- BZ#947118
- libvirt 库添加了对在主机内存中锁定域内存的支持。在这个版本中,用户可以避免交换域的内存页面,从而避免交换导致的域执行延迟。用户现在可以将域配置为始终存在于主机内存中。
- BZ#956826
- QEMU I/O 节流在虚拟机上提供精细的 I/O 控制,并在底层存储设备上提供抽象层。
- BZ#826315, BZ#822306
- 新的 pvpanic 虚拟设备可以进入虚拟化堆栈中,客户机 panic 可能会导致 libvirt 发送通知事件来管理应用程序。此功能在 Red Hat Enterprise Linux 6.5 中作为技术预览引进。请注意,启用这个设备需要使用额外的 qemu 命令行选项 ; 这个版本不包括 libvirt 设置这些选项的任何支持方法。
- BZ#1014198
- 在以前的版本中,libvirt 库中的 virDomainDeviceUpdateFlags () 函数允许用户在域仍在运行时更新域设备上的一些配置。因此,在更新网络接口控制器(NIC)时,因为缺少实现,QoS 无法更改。在这个版本中,添加了缺少的实现,现在可在 NIC 上更新 QoS。
错误修复
- BZ#1029632
- 当两个客户端尝试启动同一临时域时,libvirt 可能没有正确检测到同一域已经启动。因此,多个 QEMU 进程可以针对同一域运行,而 libvirt 不知道它们。有了这个更新,libvirt 已被修复,可以正确地检查同一域是否尚未启动,因此避免为同一域启动多个 QEMU 进程。
8.99. libvirt-cim
程序错误修复
- BZ#826179
- 在以前的版本中,使用 KVM_ComputerSystem 类运行 wbemcli 工具会意外终止并出现分段错误。这是因为即使以只读方式连接到 libvirtd 守护进程,域 XML 带有安全信息(使用 VIR_DOMAIN_XML_SECURE 标志)被转储。但是,在 libvirt 中禁止此操作。在这个版本中,标记不会用于只读连接。使用 KVM_ComputerSystem 运行 wbemcli 命令现在会如预期显示域信息。
- BZ#833633
- 当更新某些 libvirt-cim 或 sblim-smis-hba 软件包时,以下错误可能已在 /var/log/messages 文件中记录:sfcbmof: *** Repository error for /var/lib/sfcb/registration/repository//root/pg_interop/qualifiers出现这个问题的原因是,libvirt-cim 在 sblim-sfcb 存储库中错误地安装了 PG_InterOp 类,但这个类特定于 open-pegasus 软件包。在这个版本中,在升级软件包前,PG_InterOp 被取消注册,在这种情况下不会记录任何错误消息。
- BZ#859122
- 在以前的版本中,libvirt-cim 错误地安装了特定于 open-pegasus 软件包的供应商。这可能会导致各种问题,例如编译 MOF 文件时失败。现在会在正确的存储库中安装专用于 open-pegasus 的提供程序,问题将不再发生。
- BZ#908083
- 在以前的版本中,如果使用桥接网络接口定义 qemu 域,运行 libvirt-cim 供应商会失败并显示以下错误消息:无法启动域:不支持的配置:在网桥的接口不支持脚本这是因为在检查 qemu 域类型前,在文件中添加了代码触发脚本。但是 qemu 域不允许使用脚本。在这个版本中,在添加代码触发脚本前,会执行对 qemu 域类型的检查。因此,在使用 libvirt-cim 时,现在可以使用桥接网络接口创建 qemu 域。
- BZ#913164
- 在以前的版本中,查询客户机的当前 VNC 地址和端口号的调用会返回客户机的静态配置。如果使用客户机启用"自动端口"选择,调用不会返回分配的端口。libvirt-cim 代码已被修改,仅返回静态配置信息。这允许其他接口根据域状态返回信息。因此,现在返回域用于 VNC 的当前和正确的端口。
- BZ#1000937
- 由 libvirt-cim 代理管理的虚拟机不知道"memory"部分中的"dumpCore"标记,也不支持 "disk" 设备的"shareable"属性。因此,当代理配置被代理更新时,这些属性会从虚拟机 XML 配置中丢弃。因此,希望或在其虚拟机上设置这些属性的客户必须调整配置才能重置配置。在这个版本中,在 libvirt-cim 中添加了补丁,现在了解这些属性,以便在编写配置时不会丢失对虚拟机 XML 配置所做的更改。因此,由 libvirt-cim 代理管理的虚拟机将识别"memory"部分中的"dumpCore"标签,或"disk"设备上的"shareable"标签,在更新虚拟机 XML 配置时不会删除。
8.100. libvirt-snmp
错误修复
- BZ#736258
- 在以前的版本中,使用 Ctrl+C 组合键关闭 libvirtMib_subagent 会导致内存泄漏。libvirtd 守护进程有时也会终止。补丁已被应用于解决这个问题,在这种情况下不再发生内存泄漏。
8.101. libwacom
8.101.1. RHBA-2013:1567 - libwacom 程序错误修复更新
错误修复
- BZ#847427
- 在以前的版本中,libwacom 数据库的 Lenovo ThinkPad X220 表不支持 Wacom Stylus pen。因此,gnome-wacom-properties 工具无法识别 pen,返回警告信息。添加了对 Lenovo ThinkPad X220 平板电脑上的 Wacom Stylus 的支持,现在 gnome-wacom-properties 现在可以对平板电脑进行校准。
8.102. libxml2
8.102.1. RHBA-2013:1737 - libxml2 程序错误修复更新
错误修复
- BZ#863166
- 在以前的版本中,使用 XML::LibXML 模块解析包含通过 Document Type Definition (DTD)加载实体的 XML 文件可能会导致 XML::LibXML 没有加载实体 DTD。补丁已被应用于解决这个问题,在这种情况下,XML 文件被成功解析。
8.103. linuxptp
程序错误修复
- BZ#910966
- 在以前的版本中,ptp4l 应用程序没有限制时钟的频率修正。因此,在一些 PTP 时钟中,当 ptp4l 正确偏移时,它可能会将频率修正设置为 -100%,这样可有效地停止时钟。在这个版本中,添加了一个新的选项来配置时钟的最大允许调整,默认为 90%。因此,同步时钟永远不会停止,除非允许 ptp4l 调整时钟 100%。
- BZ#910974
- 在以前的版本中,phc2sys 工具无法读取有关 ptp4l 应用程序的当前协调时间(UTC)偏移和待处理的 leap 秒的信息。因此,用户必须手动指定 UTC 偏移,且未处理 leap 秒。在这个版本中,为 phc2sys 添加了一个新的选项,以等待 ptp4l 同步 PTP 时钟,并定期读取当前的 UTC 偏移和有关待处理 leap 秒的信息。因此,phc2sys 工具使用正确的 UTC 偏移和 leap 秒。
- BZ#991332, BZ#985531
- 在以前的版本中,ptp4l 应用程序无法正确检查缓存的后续信息是否与新接收的同步或后续消息关联。因此,消息可能会错误地关联,这可能会导致时钟出现大量偏移和干扰的同步。修正了关联同步和后续消息的代码。因此,同步不再有距离。
- BZ#991337
- 在以前的版本中,当收到宣布信息时,ptp4l 应用程序不会为处于 PASSIVE 状态的端口重置宣布接收计时器。因此,PASSIVE 状态下的端口在 PASSIVE 和 MASTER 状态之间重复切换。这个程序错误已被解决,计时器现在可以在每次宣布消息中正确重置。因此,端口会一直处于 PASSIVE 状态,直到它停止接收宣布信息。
- BZ#966787
- 在以前的版本中,ptp4l 和 phc2sys 工具不会检查命令行参数和配置文件中指定的值是否有效。因此,实用程序可能会意外终止。现在,实用程序会检查值是否有效,并且指定了无效的值,工具将不再意外终止并改为打印错误消息。
功能增强
- BZ#977258
- 有时,系统时钟不是分步,也就是说,不会影响系统上运行的其他程序。重启 phc2sys 应用程序会导致时钟步骤。在 phc2sys 中添加了一个新的选项,现在可以防止 phc2sys 分步时钟。
8.104. lksctp-tools
8.105. logrotate
8.105.1. RHBA-2013:1095 - logrotate 程序错误修复更新
程序错误修复
- BZ#841520
- 即使所有者与日志文件的当前所有者相同,logrotate 实用程序始终尝试设置轮转日志的所有者。因此,在不支持更改所有权的文件系统或系统中轮转会失败。在这个版本中,在更改所有权前,logrotate 会检查其是否是真实所有权更改;也就是说,logrotate 会验证新所有权是否与之前的所有权不同,并在所有权更改没有真实更改时跳过更改。现在,在这种场景中,logrotate 工具会按预期轮转日志。
- BZ#847338
- 在轮转的日志上设置访问控制列表(ACL),覆盖之前设置日志文件的设置模式。因此,"create"指令会被忽略。要解决这个问题,当使用 "create" 指令和使用 "create" 指令定义的模式时,不会从旧日志文件复制 ACL。因此,"create" 模式可以正常工作,在上述场景中不再忽略它。
- BZ#847339
- acl_set_fd ()和 fchmod ()函数都被调用来设置日志文件权限。因此,有一个竞争条件,日志文件在创建期间在短时间内可能具有不安全的权限。在这个版本中,根据配置文件中使用的指令组合和 acl_set_fd ()和 fchmod ()函数之间的竞争条件无法调用其中一个函数。
- BZ#848131
- 因为创建新日志文件时使用了 inverse umask 值 0000,因此在使用 fchmod ()函数将权限设置为正确的值前,新创建的日志文件可能会短时间内有不需要的 0600 权限。在这个版本中,umask 被设置为 0777,新创建的日志文件在此短时间内具有适当的 0000 权限。
- BZ#920030
- 创建压缩日志文件后,会设置默认 SELinux 上下文。因此,压缩日志没有正确的 SELinux 上下文。在这个版本中,在压缩日志文件创建和压缩日志文件具有正确的 SELinux 上下文之前,会设置默认 SELinux 上下文。
- BZ#922169
- 如果在使用错误发生错误,则不会删除 logrotate 实用程序创建的临时文件。在这个版本中,临时文件会在这样的情形中被删除。
8.106. logwatch
8.106.1. RHBA-2013:1247 - logwatch 程序错误修复更新
程序错误修复
- BZ#737247
- 在以前的版本中,logwatch 无法正确解析 up2date 服务的"updateLoginInfo ()登录信息"信息,并将它们显示为不匹配的条目。在这个版本中,对此类日志消息的解析已被修复,可以正常工作。
- BZ#799690
- 在此次更新之前,logwatch 无法正确解析许多 Openswan 日志消息,并将其显示为不匹配的条目。在这个版本中,对此类日志消息的解析已被修复,可以正常工作。
- BZ#799987
- logwatch 没有正确解析 Dovecot 2.x 日志消息。这会导致报告中有很多不匹配的条目。此补丁添加了额外的逻辑来正确解析 Dovecot 2.x 日志,因此不再会出现与 Dovecot 2.x 信息相关的不匹配的条目。
- BZ#800843
- .hdr 文件是 RPM 软件包的标头,它们基本上是元数据。logwatch 的 HTTP 服务解析器为 .hdr 文件发出警告,即使"Detail"参数设为"Low"。在这个版本中,.hdr 文件被解析为存档,这会删除有关 .hdr 文件的假警告。
- BZ#837034
- 在以前的版本中,logwatch 无法正确处理其配置中的"MailTo"选项。这会导致没有输出,即使应该会显示报告。此补丁添加了额外的逻辑来正确处理空 "MailTo" 选项。因此,即使这个选项为空,也会正确生成输出。
- BZ#888007
- 在此次更新之前,logwatch 没有正确地解析很多智能日志消息,并将其显示为不匹配的条目。在这个版本中,对此类日志消息的解析已被修复,可以正常工作。
- BZ#894134
- 在此次更新之前,logwatch 没有正确解析启用了 DNSSEC 验证的 DNS 日志消息,并将其显示为不匹配的条目。在这个版本中,对此类日志消息的解析已被修复,可以正常工作。
- BZ#894185
- 在以前的版本中,logwatch 无法正确解析 postfix 服务的"improper 命令 pipelining"消息,并将它们显示为不匹配的条目。在这个版本中,对此类日志消息的解析已被修复,可以正常工作。
- BZ#894191
- 在以前的版本中,logwatch 无法正确解析安全日志中的用户名。它错误地认为此类名称仅包含字母,并显示含有具有其他符号(如数字)的消息,如不匹配的条目。在这个版本中,对用户名的解析已被改进使其包含下划线和数字,因此包含此类用户名的日志消息不再显示为不匹配的条目。
- BZ#974042
- logwatch 没有正确地解析"su -"或"su -l"命令的登录,显示为不匹配的条目。在这个版本中解决了这个程序错误。
- BZ#974044
- 在此次更新之前,logwatch 无法正确解析 RSYSLOG_FileFormat 时间戳,并将其显示为不匹配的条目。在这个版本中,对 rsyslog 时间戳的解析已被修复,可以正常工作。
- BZ#974046
- logwatch 没有正确地解析 SSH Kerberos (GSS)登录,并显示为不匹配的条目。在这个版本中解决了这个程序错误。
- BZ#974047
- logwatch 没有正确解析 Xen 虚拟控制台登录,显示为不匹配的条目。在这个版本中解决了这个程序错误。
8.107. luci
安全修复
- CVE-2013-4482
- 在 luci 服务初始化的方式中发现了一个安全漏洞。如果系统管理员从本地用户写入的目录启动 luci 服务,则该用户可能会使用此缺陷以 root 或 luci 用户身份执行任意代码。
- CVE-2013-4481
- 在 luci 生成其配置文件的方式中发现了一个安全漏洞。该文件在短时间内以全局形式创建,允许本地用户访问存储在配置文件中的身份验证 secret。
程序错误修复
- BZ#917747
- 在以前的版本中,luci 不会反映隔离设备覆盖的并发添加,如 fence-agents 软件包所发生。因此,Dell iDRAC (idrac)、HP iLO2 (ilo2)、HP iLO3 (ilo3)、HP iLO4 (ilo4)和 IBM Integrated Management Module (imm)设备或代理没有遵守 luci,从而导致无法与或者设置由这些设备组成的集群。在这个版本中,恢复了 luci 功能,以便使用完整的隔离设备集合。
- BZ#956360
- 在以前的版本中,luci 不会在 FIPS 模式下运行,因为它使用了与 FIPS 不兼容的组件。这两个组件、python-breaker 库和 python-weberror 错误处理程序均已修改为符合 FIPS,以便 luci 现在可以按预期在 FIPS 模式下工作。
- BZ#978479
- 由于 luci 代码中的一个错误,在将多个节点添加到具有单个请求的集群中可能会出现数据竞争条件。因此,节点可能会提供具有不同版本号的配置,使集群处于意外状态。相应的 luci 代码已被修复,因此无法再触发此数据争用。现在,可以一次性将多个节点添加到集群中,而不会造成负面影响的风险。
- BZ#773491
- 之前动态弹出消息的实现具有高概率的信息,在某些情况下,使屏幕无法发生。因此,对应的 luci 代码已被修改为调整动态弹出窗口以显示为静态消息,这会显著减少消息可能没有被注意的几率。
- BZ#883008
- 在以前的版本中,luci 不会反映某些隔离设备的参数的并发添加(包括 "cmd_prompt", "login_timeout", "power_timeout", "retry_on", "shell_timeout")或相应的实例("delay")在 fence-agents 软件包中发生。因此,在提交 luci 的专用表单时,可从配置的相应部分丢弃有效的参数。这个版本恢复了 luci 功能,以便使用完整的隔离代理参数集合,并防止 luci 意外丢弃已经配置的参数。
- BZ#896244
- 由于 cluster.conf (5) man page 中存在一个错误,luci 预期集群日志记录配置中的 syslog_facility 选项的默认值为 "daemon",而不是实际默认值 "local4"。因此,所有没有明确设置"syslog_facility"的日志配置项都会被标记为 luci 中的 "daemon" 的 "Syslog Message Facility"。这可能会导致没有集群信息登录到包含 "daemon unset" 的规则的自定义日志文件中。在这个版本中,luci 可以正确地将 "local4" 识别为默认的 syslog 消息工具,并默认将 luci 中的配置项相应地标记。用户现在可以有效地将日志记录配置项的 syslog 工具设置为"daemon"。在这种情况下,集群信息会按预期登录到包含 "daemon decisions" 规则的日志文件。
- BZ#886517
- 在创建新集群时,luci 应用不会自动启用 ricci 和 modclusterd 服务,或将节点添加到现有集群中。因此,管理员的干预是必需的,因为这些服务在生命周期内管理集群至关重要。如果没有这些服务,luci 会保持与集群节点联系,从而导致集群无法重新引导。在这个版本中,luci 已被修改,以便在创建新集群时在每个集群节点上启用 ricci 和 modclusterd 服务,或将节点添加到现有集群中。在上述场景中,不再需要管理员的干预。
- BZ#878149
- 在以前的版本中,如果没有在某些 luci 页面中联系集群节点,luci 会在该页面中显示 Error 500 信息,并记录一个错误信息,并在日志中出现回溯信息。对于这种情况,这个更新会修改 luci 以显示以下信息之一:
Unable to contact any of the nodes in this cluster.
No nodes from this cluster could be contacted. The status of this cluster is unknown
- BZ#880363
- 由于 luci 验证代码中的一个错误,如果在"Failover Domains"选项卡中指定了不存在的故障转移域,则会显示混淆的验证错误消息。这个程序错误已被解决,luci 现在可以正确地处理这些验证错误,如预期显示适当的错误信息。
- BZ#878960
- 在无需身份验证的情况下,可以访问"用户首选项"页面,允许匿名用户禁用或启用"expert"模式。虽然此行为没有直接的安全影响,但分配的授权的一致性被视为最佳实践。此更新将 luci 修改为严格要求用户在访问此"首选项"页面前进行身份验证。
- BZ#886576
- "Edit Fence Instance"表单中的"删除此实例"按钮没有功能,并可能具有错误的集群管理员。这个按钮已被删除,因此上述形式现在只显示相关内容。
- BZ#1001835
- luci 应用程序错误地认为 Dell DRAC 5 隔离设备的"module_name"参数是强制的。因此,无法在指定模块名称的情况下创建这样的隔离设备。验证代码已被修复,luci 现在将此参数视为可选,Dell DRAC 5 隔离设备现在可以在没有模块名称的情况下成功创建。
功能增强
- BZ#917814
- 添加了一个确认弹出对话框,防止 luci 意外删除所选集群。
- BZ#983693
- 现在,luci 应用程序反映到 oracledb, orainstance 的并发扩展,以及 Oracle Database 11g 支持的 oralistener 资源代理。这也包括能够配置新支持的 TNS_ADMIN 变量,以允许更广泛的自定义。
luci
服务将自动重启。
8.108. lvm2
8.108.1. RHBA-2013:1704 - lvm2 程序错误修复更新
程序错误修复
- BZ#820991
- 当系统中有可见的集群卷组(VG)时,无法在使用非集群锁定类型时静默跳过它们,并带有正确的返回错误代码。要修复这个程序错误,为几个 LVM 命令添加了"--ignoreskippedcluster"选项,即 pvs、vgs、lvdisplay、vgdisplay、vgdisplay、lvdisplay、vgchange 和 lvchange。使用此选项时,集群 VG 会正确跳过,且不会有任何警告或错误消息,而返回错误代码还不依赖于这些集群的 VG。
- BZ#834327
- 在以前的版本中,如果这个设备仍然打开,则 lvremove 命令无法删除虚拟快照设备。因此,在删除失败后,<virtual_snashot_name>_vorigin device-mapper 设备会被保留在系统中。需要使用 dmsetup 的手动删除来丢弃该设备。在这个版本中,lvremove 已被修改,以便在继续删除操作前正确检查 LV 打开计数状态。
- BZ#861227
- 在以前的版本中,当 lvconvert 命令与 "--stripes" 选项一起使用时,所需的补充选项,如 "--mirrors" 或 "--repair", "thinpool", 或 "type raid*/mirror",没有强制执行。因此,在没有附带的转换指令的情况下调用 "lvconvert --stripes" 会导致转换不完整。在这个版本中,添加了一个条件来强制实施正确的语法。现在,在上述场景中会显示错误消息。
- BZ#880414
- 在以前的版本中,某些 lvm2app 功能以扇区而不是字节返回值。这个行为适用于 origin_size, vg_extent_size, stripe_size, region_size, chunk_size, seg_start, 和 pvseg_size 的值。因此,返回的 lvm2app 结果不一致,因此误导。这个行为已被更改,所有 lvm2app 值现在都返回字节值。
- BZ#902538
- lvm2 工具通过在 /proc/devices 文件中搜索 "emcpower" 行来确定 PowerPath 主号码。在以前的版本中,一些 PowerPath 版本使用 ID 字符串 "power2"。因此,在使用这样的标识符的系统上,PowerPath 设备没有给出与存在相同的物理卷 UUID 的 PowerPath 组件的预期优先级。在这个版本中,对 EMC 电源设备的检测可以正常工作,设备的优先级会被正确设置。
- BZ#902806
- 在此次更新之前,lvm2 dmeventd 守护进程只尝试通过 LANG 环境变量重置为 C 区域。但是,当系统使用 LC_ALL 变量设置区域设置时,此变量的优先级高于 LANG 变量,这会导致大量内存消耗。在这个版本中,LC_ALL 已重置为 C,而不是 LANG,从而减少内存消耗。
- BZ#905254
- 在这个版本中,当 lvmetad deamon 已在运行或者其 pidfile 被锁定时,为问题单添加了一个特定的诊断消息。当尝试启动 lvmetad 时,它现已运行时会返回一个信息,并明确指明这个问题:
Failed to acquire lock on /var/run/lvmetad.pid. Already running?
- BZ#907487
- 在以前的版本中,当 RAID 逻辑卷没有使用缺少的物理卷时,无法使用 'vgreduce --removemissing' 命令。现在,"vgreduce --removemissing"可以使用受影响的 RAID 逻辑卷中的"错误"片段替换失败的物理卷,并从卷组中删除 PV。然而,在大多数情形中,最好使用备用 RAID 设备(如果可能使用 'lvconvert --repair')替换失败的 RAID 设备。
- BZ#910104
- 在某些情况下,lvmetad 守护进程中的缓存元数据可能会在元数据更新过程中泄漏。在这个版本中,lvmetad 已被修复,以防止泄漏。
- BZ#913644
- 在以前的版本中,如果在发出 vgexport 命令后设备失败,则无法导入卷组。另外,这个导入失败也意味着无法修复卷组。现在,在 vgimport 中使用 '--force' 选项来导入卷组,即使设备缺失。
- BZ#914143
- 当 LVM 元数据扫描设备时,它会应用多个过滤器,如多路径过滤器、MD 组件过滤器或分区签名过滤器。在以前的版本中,应用这些过滤器的顺序会导致多路径过滤器无法过滤多路径组件,因为设备被其他过滤器访问。因此,如果路径无法访问,则 I/O 错误。在这个版本中,过滤顺序已被更改,多路径过滤器现在可以正常工作。
- BZ#919604
- 'raid1' 类型可以用来为 thinpool 逻辑卷设置设备容错。不再可以在 'mirror' 段类型的逻辑卷上创建 thinpool。带有 'mirror' 片段类型的 data 或 meta 数据区域的现有 thinpool 仍可以正常工作,但建议使用 'lvconvert' 命令将它们转换为 'raid1'。
- BZ#928537
- 当在提供的 UUID 不正确时,使用 pvcreate 命令和 --restorefile 和 --uuid 选项时,会发出有关内存泄漏的内部错误消息:
Internal error: Unreleased memory pool(s) found.
在这个版本中,内存泄漏已被修复,错误消息不再显示。 - BZ#953612
- 当将 device-mapper-event 软件包更新至更新的版本时,软件包更新脚本会尝试重启运行 dmeventd 实例,并将其替换为新的 dmeventd 守护进程。但是,之前版本的 dmeventd 不会识别重启的通知,因此在这种情况下需要手动干预。在以前的版本中,会显示以下警告信息:
WARNING: The running dmeventd instance is too old
要为所需操作提供更精确的信息和建议,为上述问题单添加了以下信息:Failed to restart dmeventd daemon. Please, try manual restart
- BZ#953867
- 当将 lvmetad 守护进程与附带的 LVM 自动激活功能一起使用时,在系统引导时不会自动激活加密设备的逻辑卷。这是因为忽略在系统引导过程中生成的额外的 udev 事件来初始化所有现有设备。这个程序错误已被解决,LVM 现在可以正确地识别用于在引导时初始化设备的 udev 事件,包括加密设备。
- BZ#954061
- 当将 lvmetad 守护进程与附带的 LVM 自动激活功能一起使用时,代表逻辑卷的设备映射器设备在底层 PV 被取消插入或停用后不会被刷新,然后插入或激活。这是因为分配不同的主要和次要对来识别重新连接设备,而在该设备上映射的 LV 仍然被引用为原始对。这个程序错误已被解决,LVM 现在总是在重新激活后刷新 PV 设备中的逻辑卷。
- BZ#962436
- 由于 LVM 2.02.74 中引入的回归,当 optimal_io_size 设备提示小于默认的 pe_start 大小 1 MiB 时,会忽略这个 optimal_io_size,并使用默认大小。在这个版本中,optimal_io_size 会被正确应用,以计算 PV 的 pe_start 值。
- BZ#967247
- 在此次更新之前,在向 RAID 逻辑卷添加额外的镜像前,可用空间被错误地计算。因此,如果可用空间不足,添加这些镜像会失败。这个程序错误已被解决,计算现在可以正确执行。
- BZ#973519
- 在以前的版本中,如果 nohup 命令与不需要输入的 LVM 命令一同使用,在 LVM 尝试重新打开时,不会将标准输入配置为 write-only。因此,命令使用以下信息终止:
stdin: fdopen failed: Invalid argument
LVM 已被修改,如果标准输入已经打开了写写,LVM 不会尝试重新打开它以读取。 - BZ#976104
- 在以前的版本中,当将线性逻辑卷转换为镜像逻辑卷时,/etc/lvm/lvm.conf 配置文件中设置的首选 mirror 片段类型并不总是被接受。这个行为已被修改,在配置文件中的 'mirror_segtype_default' 设置指定的片段类型现在会如预期应用。
- BZ#987693
- 由于代码回归,在没有 '--zero' 选项创建不足的 thin-pool 时,精简快照崩溃。因此,快照中的前 4KB 可能无效。这个程序错误已被解决,在上述场景中快照不再损坏。
- BZ#989347
- 由于 LVM 分配代码中的一个错误,lvm2 会尝试释放空间分配连续到现有条带空间。当尝试使用 lvextend 命令扩展三向条状逻辑卷时,lvm2 工具会意外终止并出现分段错误。有了这个更新,LVM 的行为已被修改,lvextend 现在会在没有分段错误的情况下完成扩展。
- BZ#995193
- 在以前的版本中,无法使用 'locking_type = 0' 的配置设置将卷组从集群转换为非集群。因此,如果集群不可用,可能会出现问题,且需要将卷组转换为非集群模式。有了这个更新,LVM 已被修改,使上述转换成为可能。
- BZ#995440
- 在此次更新之前,修复不一致的元数据会根据 lvmetad 守护进程是否正在运行并启用相关的代码路径。因此,meta 数据修复的 lvmetad 版本无法更正元数据数据,每个命令都会重复输出警告信息,直到手动修复问题。在这个版本中,代码路径已被协调。因此,无论 lvmetad 是什么,无论 lvmetad 都会自动修复元数据不一致。
- BZ#997188
- 当在没有物理卷的系统中调用 lvm2app 库的 lvm_list_pvs_free 功能时,lvm2app 代码会尝试释放之前已释放的内部结构。因此,这个功能会因为分段错误而终止。这个程序错误已被解决,调用 lvm_list_pvs_free 时不再发生分段错误。
- BZ#1007406
- 当在 MD RAID 设备中使用 LVM 逻辑卷作为 PV,在启用了 lvmetad 守护进程时,附带的逻辑卷自动激活有时会在系统中保留不完整的设备映射器设备。因此,在没有手动清理 dangling 设备映射器设备的情况下,无法激活其他逻辑卷。这个程序错误已被解决,而危险的设备不再在系统中保留。
- BZ#1009700
- 在以前的版本中,当在写入失败后试图读取 LVM 镜像时,LVM 命令可能会变得无响应,但在 repair 命令处理失败前,LVM 命令可能会变得无响应。在这个版本中,添加了一个新的 'ignore_lvm_mirrors' 配置选项以避免出现这个问题。将这个选项设置为 '1' 将导致 LVM 镜像被忽略并防止上述问题。忽略 LVM 镜像还意味着无法在 LVM 镜像上堆栈卷组。上述问题没有 LVM RAID 类型(如 "raid1" )不存在。建议您使用 RAID 片段类型,特别是尝试在镜像逻辑卷之上堆栈卷组。
- BZ#1016322
- 在此次更新之前,libdevmapper.so 中的池销毁过程中可能会出现竞争条件。因此,lvmetad 守护进程有时会因为堆崩溃而终止,特别是在处理并发负载下,如同时执行多个 LVM 命令。在这个版本中,引入了一个正确的锁定来修复竞争条件。因此,lvmetad 不再会出现堆崩溃和后续的崩溃。
- BZ#1020304
- blkdeactivate 脚本会迭代将其指定为参数的设备列表,并尝试逐一卸载或停用它们。但是,如果卸载失败或取消激活失败,则迭代不会进行。因此,blkdeactivate 保持尝试处理同一设备并进入无限循环。这个行为已被修复,如果 blkdeactivate 无法卸载或取消激活任何设备,则会正确跳过这个设备的处理,blkdeactivate 会如预期继续。
功能增强
- BZ#814737
- 在这个版本中,lvm2 已被改进,以支持创建现有非精简配置的逻辑卷的精简快照。精简池现在可用于这些非精简卷快照,从而提高了性能。请注意,当前的 lvm2 版本不支持合并功能,与旧的 lvm2 快照不同,更新的设备无法合并到其原始设备中。
- BZ#820203
- LVM 现在支持验证配置文件,它可以在现有语法检查之外报告任何带有错误值类型的未识别条目或条目。为了支持此功能,在 /etc/lvm/lvm.conf 配置文件中添加了新的"config"配置部分。本节有两个可配置的:"config/checks"用于启用或禁用检查(默认为启用)和"config/abort_on_errors",它启用或禁用任何找到的无效配置条目上的即时中止(默认为禁用)。另外,在 "lvm dumpconfig" 命令中添加了新的选项,该命令使用了引入的新配置处理代码。"lvm dumpconfig" 现在识别以下选项:--type, --atversion, --ignoreadvanced, --ignoreunsupported, --mergedconfig, --withcomments, --withversions, 和 --validate。
- BZ#888641
- 在以前的版本中,scm (Storage Class Memory)设备内部不被识别为可分区设备。因此,scm 设备不能用作物理卷。在这个版本中,s scm 设备被添加到已知可以被分区的设备的内部列表中。因此,在 scm 分区上支持物理卷。另外,新的 'lvm devtypes' 命令已被添加来列出所有已知的设备类型。
- BZ#894136
- 当 lvmetad 守护进程被启用时,元数据数据会在 RAM 中缓存,大多数 LVM 命令在正常操作过程中不会参考磁盘上的元数据数据。但是,当元数据数据在磁盘上损坏时,LVM 在重启 lvmetad 或重启时可能无法注意到。在这个版本中,用于检查 VG 一致性的 vgck 命令已被改进来检测磁盘上的崩溃,即使 lvmetad 处于活跃状态并缓存 meta 数据。因此,用户可以发出"vgck"命令,以随时验证磁盘上的元数据数据的一致性,也可以使用 cron 安排定期检查。
- BZ#903249
- 如果设备临时失败,内核会注意到中断并将设备视为禁用。之后,内核需要在接收设备再次接受 alive 之前被通知。在以前的版本中,LVM 无法识别这些更改,且 'lvs' 命令会正常将设备报告为正常运行,即使内核仍然认为该设备失败。在这个版本中,如果缺少设备,则"lvs"已被修改为打印"p" (部分),如果设备存在,则使用"刷新/替换" (刷新/替换),但内核将设备视为仍然被禁用。当看到 RAID 逻辑卷的 'r' 属性时,用户可以决定是否应刷新阵列(使用 'lvchange --refresh' 重新载入到内核中),或者是否应替换该设备。
- BZ#916746
- 在这个版本中,COW 设备大小的快照管理处理已被改进。此版本将快照 COW 大小修剪为最大可用大小,以避免不必要的磁盘空间消耗。它还会在达到最大大小后停止快照监控。
- BZ#921280
- 对 thinpool 更复杂的设备堆栈的支持已被改进,以正确地调整更复杂的卷的大小,如 mirrors 或 raids。新的 lvm2 版本现在支持 raids 上的精简数据卷扩展。对 mirror 的支持已被取消激活。
- BZ#921734
- 在此次更新之前,"vgchange -c {y|n}"命令调用会将系统上可访问的所有卷组更改为集群或非集群。这可能导致意外更改,因此添加了以下提示来确认此更改:
Change clustered property of all volumes groups? [y/n]
只有在调用 "vgchange -c {y|n}" 时,才会显示这个提示,而不指定目标卷组。 - BZ#924137
- blkdeactivate 工具现在阻止了来自调用的外部工具的错误和信息。相反,只有摘要消息"done"或"skipped"由 blkdeactivate 发出。如果需要显示这些错误消息,在 blkdeactivate 中添加了新的 -e/-errors 开关。另外,有一个新的 -v/-verbose 开关,用来显示来自外部工具的任何信息信息以及任何可能的调试信息。
- BZ#958511
- 在这个版本中,blkdeactivate 工具已被修改来正确处理使用 bind 挂载的文件系统(mount -o bind' 命令)。现在,在尝试取消激活卷之前,blkdeactivate 会正确卸载所有这些挂载点。
- BZ#969171
- 当同时创建很多 RAID 逻辑卷时,后台同步 I/O 可能需要计算奇偶校验或复制镜像镜像,以阻止小的 I/O,并导致后续逻辑卷创建缓慢。现在,可以通过对 lvcreate 的 '-raidmaxrecoveryrate' 选项限制这个初始化 I/O。您可以将相同的参数与 lvchange 搭配使用,在逻辑卷创建后更改恢复 I/O 速率。减少恢复率可防止命名命名的 I/O。初始化将需要更长的时间,但创建许多逻辑卷将更快地进行。(BZ#969171)
- BZ#985976
- 在这个版本中,可以使用清理操作来检查使用 LVM 创建的 RAID 逻辑卷。清理操作是用户发起的检查,以确保 RAID 卷一致。通过将"check"或"修复"选项附加到 "lvchange --syncaction" 命令中,可以执行两个清理操作。"check"操作将检查逻辑卷是否有任何差异,但并不能更正它们。"修复"操作将更正发现的任何差异。
- BZ#1003461
- 在这个版本中,为 lvm2 添加了对精简外部原始卷的支持。这允许将任何 LV 用作精简卷的外部来源。所有未置备块都会从外部原始卷加载,而所有被写的块都是从精简卷加载的。这个功能由 'lvcreate --snapshot' 命令和 'lvconvert' 命令提供,可将任何 LV 转换为精简 LV。
- BZ#1003470
- 当池卷 "pool volume name" 是 active' 时,错误消息 'Cannot change discards state for active pool volume "pool volume name" is active.
- BZ#1007074
- 现在,'lvconvert --repair' 命令提供了损坏的精简池元数据的修复,这是低级手动修复。精简池 meta 数据卷可以通过 'lvconvert --poolmetadata swapLV vg/pool' 命令从 thin-pool LV 中交换,然后使用 thin_check、thin_dump 和 thin_repair 命令运行手动恢复操作。在修复后,精简池 meta 数据卷可以被交换回。只有在用户完全了解精简池功能时,才应使用此低级别修复。
- BZ#1017291
- LVM 现在将 NVM Express 设备识别为正确的块设备类型。
8.109. mailx
8.109.1. RHBA-2013:1129 - mailx 程序错误修复更新
程序错误修复
- BZ#845098
- 在此更新之前,由 Red Hat Enterprise Linux 6 mailx 软件包提供的"电子邮件"实用程序与 Red Hat Enterprise Linux 5 mailx 软件包提供的实用程序与早期版本的 Red Hat Enterprise Linux 5 mailx 软件包和软件包完全兼容。因此,为 mail 工具编写的一些用户脚本无法在 Red Hat Enterprise Linux 6 中使用"电子邮件"。在 mailx 软件包中添加了对多个 "mail" 工具版本的支持。这允许用户安装提供此实用程序的替代软件包,如 bsd-mailx。
- BZ#857120
- 当无法发送电子邮件时,mailx 命令不会设置错误返回代码,因为 TMPDIR 环境变量被设置为无效的路径。因此,错误检查不正确,因此不会很有用。在这个版本中,当 mailx 无法发送电子邮件时,会设置正确的返回码。错误检查现在可以正常工作。
8.110. man-pages-fr
错误修复
- BZ#903048
- 由于法语 man page 软件包 man-pages-fr 的构建系统中有一些问题,软件包中不包含一些手册页。有些手册页,例如"echo"的手册页,即使系统以法语区域运行,也会以英语显示。因此,命令"man echo"显示英语手册页。man-pages-fr 软件包中的构建问题已被修复,现在包括了缺少的手册页。因此,当系统以法语区域运行时,手册页面现在显示在法语内,例如"man echo"现在会显示一个法语手册页。
8.111. man-pages-ja
程序错误修复
- BZ#949787
- 上一发行版本中的 shmat (2) man page 没有提到 EIDRM 错误代码,这些代码可以被 shmat 工具返回。在这个版本中,EIDRM 错误代码包含在 shmat 中。
- BZ#957937
- 上一发行版本中的 strtoul (3) man page 错误地提到了返回值的范围。这个版本解决了上述问题。
8.112. man-pages-overrides
程序错误修复
- BZ#988125
- madvise (2)手册页不包含"MADV_DODUMP"和"MADV_DONTDUMP"参数。在这个版本中,在 madvise (2)手册页中添加了这些参数的描述。
- BZ#833868
- 在以前的版本中,dig 工具的手册页包含国际域名(IDN)库的上游特定选项。因此,这些选项无法按预期工作,用户可以按照手册页中的步骤在 dig 中禁用 IDN 支持。dig (1)手册页已修改为包含 Red Hat Enterprise Linux 中使用的 IDN 库的选项,用户现在可以根据手册页中的步骤在 dig 中成功禁用 IDN 支持。
- BZ#978981
- 在以前的版本中,Red Hat Enterprise Linux 6 中不提供 getent 工具的手册页。在这个版本中,添加了缺少的 getent (1)手册页,实用程序的文档已完成。
- BZ#872144
- 在此次更新之前,top (1)手册页没有正确地描述常量内存大小的计算。常驻内存大小的计算错误已从此 man page 中删除。
- BZ#1018622
- 在以前的版本中,在 arpwatch (8)手册页中"新站"消息的描述不准确,这可能会导致混淆。在这个版本中,在 arpwatch (8)手册页中添加一条"新站"消息的正确描述。
- BZ#896700
- 在以前的版本中,auditd.conf (5)手册页包含不完整的句子。此更新中解决了不完整的句子。
- BZ#974697
- ld.so (8)手册页包含不正确的 "LD_PRELOAD" 变量描述。在这个版本中,ld.so (8)手册页中已修正了变量的描述。
- BZ#1002071
- bash (1)手册页没有反映 Bash 版本 4.1 中引入的"extglob"选项中的行为更改。在这个版本中,在 bash (1) man page 中添加了 "extglob" 行为的正确描述。
- BZ#903258
- fallocate 工具的手册页不包含 "FALLOC_FL_PUNCH_HOLE" 标志的描述。在这个版本中,将描述"FALLOC_FL_PUNCH_H_H_H_HOLE"添加到 fallocate (2)手册页。
- BZ#979318
- 在以前的版本中,netstat 工具的手册页没有在命令"-A"选项的描述中提到 IPv6。在这个版本中,IPv6 功能的描述已添加到 netstat (8)手册页中。
- BZ#905066
- 在以前的版本中,当将 curl 工具与网络安全服务(NSS)一起使用时,在 curl 文档中错误地描述了认证机构(CA)证书。这个版本添加了上述过程的正确文档。
- BZ#957010
- 在此次更新之前,strtoul (3)手册页包含"strtoul ()"和"strtoull ()"函数的返回值不正确。在这个版本中修复了 strtoul (3)手册页,它现在包含正确的信息。
- BZ#960281
- 在以前的版本中,clock_getres (2)手册页不包含 "CLOCK_MONOTONIC_COARSE" 和 "CLOCK_REALTIME_COARSE" clk_id 值。在这个版本中,上述值被添加到 clock_getres (2)手册页中。
- BZ#974685
- 在以前的版本中,sched_setaffinity (2)手册页包含一个不正确的示例,这可能会导致混淆。不正确的示例已从 sched_setaffinity (2)手册页中删除。
- BZ#951826
- 在以前的版本中,postconf 工具的手册页包含有关 postfix 服务器默认配置的不正确的信息。在这个版本中,Administration (5) manual page 中修复了默认配置描述。
- BZ#979460
- mailx (1)手册页包含有关使用 "-S" 选项设置变量的不完整条目。这个更新提供了更好的使用"-S"选项设置变量的描述,并使用 "from=" 到 mailx (1)手册页添加语法示例。
- BZ#913191
- 在此次更新之前,selinux (8)手册页包含过时的信息。这个手册页已被更新,SELinux 现在可以被正确记录。
- BZ#907837
- useradd (8)手册页包含"-u、--uid UID"选项不正确的描述,这可能会导致混淆。此更新修复了描述信息。
- BZ#807323
- 在以前的版本中,zanz-record 工具的手册页没有提到使用 "webm" 输出格式的可能性,因此手册页不完整。在这个版本中,在 byzanz-record (1)手册页中添加了 "webm"。
- BZ#1020417
- ssh_config (5)手册页包含"KexAlgorithms"选项的不正确的默认值。这个程序错误已被解决,ssh_config (5)手册页中"KexAlgorithms"的默认值现在正确。
- BZ#1020432
- ssh-keygen 工具中的"-n"选项被重命名为 "-Z",但 ssh-keygen (1)手册页没有更新。这个程序错误已被解决,ssh-keygen (1)手册页现在描述了正确的选项。
功能增强
- BZ#928917
- 在以前的版本中,open (2)手册页中没有描述 "O_DIRECT" 标志。这个更新添加了这个描述,文档现已完成。
8.113. mcelog
8.113.1. RHBA-2013:1658 - mcelog 程序错误修复和安全更新
程序错误修复
- BZ#875824
- 在以前的版本中,mcelog 软件包已安装 cron 作业来报告 mce 日志的状态,这与将 mclogd 服务作为默认模式冲突。因此,mcelog 与 cron 作业竞争,且不会收集完整的数据。在这个版本中,当 mcelogd 正在运行时,cron 作业不会被安装,从而解决了这个问题。
- BZ#919999
- 由于 mcelog 软件包中的一个错误,AMD 系列 15 构架不被支持。这个程序错误已被解决,mcelog 现在支持 AMD Family 15。
- BZ#996634
- 在以前的版本中,在 mcelog 软件包中默认启用对扩展日志的支持。因此,在不支持扩展日志记录的处理器系统中,mcelog 服务会意外终止,并显示以下信息:mcelog: Cannot open /dev/cpu/0/msr to set imc_log: Permission denied在这个版本中,在 mcelog 软件包中默认禁用扩展日志,mcelog 服务不会在上述场景中崩溃。
功能增强
8.114. mdadm
8.114.1. RHBA-2013:1643 - mdadm 程序错误修复和功能增强更新
程序错误修复
- BZ#903212
- 在以前的版本中,在扩展 Intel Matrix Storage Manager (IMSM) RAID1 或 RAID5 卷的大小时,会在 /proc/mdstat 文件中报告重新同步过程,但没有有关卷元数据中进程的信息。因此,如果在扩展过程中停止 RAID 卷,有关此进度的所有信息都会丢失,重新同步会从下一个阵列重新装配开始。现在,一个补丁已被应用于解决这个问题,信息现在存储在上述场景中的元数据中。
- BZ#950545
- 在以前的版本中,当尝试将超级块写入缺陷驱动器时,mdadm 工具无法正常工作。因此,如果 mdadm 遇到写入错误,则 mdadm 可能会意外终止并出现分段错误。这个程序错误已被解决,mdadm 不再会在这种情况下崩溃。
- BZ#955972
- 在以前的版本中,如果重新构建 Intel Matrix Storage Manager (IMSM) RAID5 卷在 Option ROM (OROM)中启动,mdadm 工具无法正常工作。因此,在引导到操作系统后,RAID5 卷处于 "degraded" 状态,重建不会进行。现在,一个补丁已被应用于解决这个问题,并在上述场景中重建 IMSM RAID5 卷。
- BZ#956016
- 在以前的版本中,当 Intel Matrix Storage Manager (IMSM)卷被重塑时,用于停止进程的 "mdadm -Ss" 命令无法正常工作。因此,在第一次运行 "mdadm -Ss" 时,只有卷已被停止,但容器会被保留,需要第二次执行命令。这个程序错误已被解决,在卷的 reshape 过程中命令现在可以正常工作。
- BZ#995105
- 在以前的版本中,当 Intel Matrix Storage Manager (IMSM) RAID10 卷被重新同步或重新构建时,在 50% 完成完成后停止进程无法正常工作。因此,在重新编译后,进程无法正确进行,数据会被破坏。在这个版本中,重新同步和重建可以正常工作。
- BZ#1001627
- 在此次更新之前,当 Intel Matrix Storage Manager (IMSM) RAID1 或 RAID10 卷被重建并停止这个过程时,尝试恢复重建将无法成功。因此,即使向容器添加新驱动器,重建也不会启动,元数据包含不正确的信息。这个程序错误已被解决,在上述场景中恢复重建现在可以正常工作。
- BZ#1010859
- 在以前的版本中,当磁盘在 Intel Matrix Storage Manager (IMSM) RAID 卷中失败时,mdadm 工具无法正常工作。因此,失败的磁盘不会从卷或容器中删除,卷没有处于 "degraded" 状态,重建可能无法启动。在这个版本中,mdadm 可以正确处理 RAID 卷中失败的磁盘。
8.115. mesa
8.115.1. RHBA-2013:1559 - mesa 程序漏洞修复和功能增强更新
程序错误修复
功能增强
8.116. microcode_ctl
错误修复
- BZ#1000317
- 在以前的版本中,microcode_ctl 工具不会检测它是否在虚拟机中运行,并尝试安装 CPU microcode 更新。此行为会导致内核环缓冲中返回几个错误。底层源代码已被修改,microcode_ctl 不再尝试更新上述场景中的 CPU microcode。
8.117. mobile-broadband-provider-info
错误修复
- BZ#844288
- 在以前的版本中,在位于 /usr/share/mobile-broadband-provider-info/ 目录的 serviceproviders.xml 文件中,"internet.saunalahti" 被错误地指定为 Sonera 供应商的 APN (Access Point Name)值。这导致 Sonera 移动宽带配置无法正常工作。包含 "internet.saunalahti" 作为 Sonera 的 APN 值的小节已从 XML 文件中删除,Sonera 移动宽带配置现在可以正常工作。
8.118. mod_auth_kerb
错误修复
- BZ#867153
- 在以前的版本中,当启用 KrbLocalUserMapping 指令时,如果本地名称具有更高长度,mod_auth_kerb 不会正确转换主体名称。因此,Apache 服务器在这样的场景中返回 HTTP 500 错误。现在,提供了一个补丁来解决这个问题,模块现在可以正确地转换其对应的主体名称。
8.119. ModemManager
错误修复
- BZ#883079
- 在以前的版本中,/lib/udev/rules.d/77-mmmechanism.rules 文件中的 "udev" 规则不会涵盖一些宽带设备。因此,宽带连接根本没有建立,或者在通信几个软件包后失败。包括了额外的"udev"规则,以确保 ModemManager 使用正确的串行端口。因此,现在支持更多的宽带设备,如 ZTE、LG 和 Sierra Wireless modems。
8.120. mysql
8.120.1. RHBA-2013:1647 - mysql 程序错误修复更新
程序错误修复
- BZ#842052
- 在此次更新之前,mysqld 守护进程在访问不可为空的 GEOMETRY 类型时处理未初始化的内存。Cosequenutly,mysqld 可能会在 mysqldump 工具运行时意外终止。在这个版本中,mysqld 会正确初始化内存,因此不再在这种情况下崩溃
- BZ#877557
- 在以前的版本中,mysqldump 实用程序预期要在 MySQL 5.0.x 服务器上创建日志表,用于从其检索数据。因此,mysqldump 无法转储 MySQL 系统表。有了这个更新,mysqldump 不再预期创建日志表,现在可以按预期转储上述场景中的系统表。
- BZ#884651
- 在此次更新之前,mysqld 初始化脚本无法正确验证 mysqld 守护进程的状态。因此,即使守护进程成功启动,该脚本也会返回错误信息。mysqld init 脚本已被修复,现在它会正确检查守护进程状态。
- BZ#904061
- 在以前的版本中,mysql-server 子软件包不包含 logrotate 脚本。因此,必须手动配置日志轮转。在这个版本中,mysql-server 子软件包提供了 logrotate 脚本,用户可以使用该脚本通过取消注释脚本中的相应行来登录 mysqld.log 文件。
8.121. net-snmp
程序错误修复
- BZ#893119
- 在以前的版本中,snmpd ( SNMP 守护进程)在填充 UCD-SNMP-MIB::extTable 表数据时不会检查错误,并在系统内存不足时可能会泄漏内存。这个程序错误已被解决,snmpd 现在检查内存不足的情况,并在遇到错误时释放 UCD-SNMP-MIB::extTable 表的内存。
- BZ#907571
- 在以前的版本中,snmp_config (5)手册页没有明确查找哪些文件,读者可能会变得错误地给带有后缀 "conf" 或 "local.conf" 的文件被用作 snmp 配置文件。在这个版本中,snmp_config (5)手册页已被修改,以精确指定哪些文件用作 snmp 配置文件。
- BZ#919259
- 在以前的版本中,snmpd 守护进程已被修复,显示可执行文件名称和 UCD-SNMP-MIB::extCommand OID 字符串中的所有命令行参数。在这个版本中,在没有命令行参数的情况下无法检查可执行文件。因此,当检索 UCD-SNMP-MIB::extCommand OID 的可执行文件时,snmpd 守护进程会无参数终止,并带有分段错误。在这个版本中,snmpd 会检查没有参数,并显示 UCD-SNMP-MIB::extCommand OID 的正确值。因此,在上述场景中不再崩溃。
- BZ#919952
- 在之前的 net-snmp 软件包更新中,HOST-RESOURCES-MIB::hrSWRunTable 表已被重写,由于回归,它不会报告内核线程的"hrSWRunPath"字符串。在这个版本中修复了内核线程的 HOST-RESOURCES-MIB::hrSWRunPath 字符串,现在由 snmpd 守护进程报告。
- BZ#922691
- 当在 /etc/snmp/snmpd.conf 文件中指定 "includeAllDisks" 配置选项时,snmpd 守护进程仅在启动时扫描正在运行的系统,如果稍后挂载了新设备,则不会更新 UCD-SNMP-MIB::dskTable 表。因此,在频繁挂载和卸载设备的动态系统上,UCD-SNMP-MIB::dskTable 无法用于监控存储使用情况,因为它只监控系统启动时可用的设备。要修复这个程序错误,UCD-SNMP-MIB::dskTable 的实现已被改进,以便在挂载新设备时动态添加新设备。这只有在 /etc/snmp/snmpd.conf 中使用 "includeAddDisks" 配置选项时才会发生。因此,在频繁挂载和卸载设备的动态系统中,UCD-SNMP-MIB::dskTable 始终显示当前挂载的设备列表。
- BZ#927474
- 在以前的版本中,snmpd 是 SNMP 守护进程,在使用 netlink 套接字与 Linux 内核通信时,不会设置正确的消息大小。因此,在解析属性后,消息 "netlink: 12 bytes leftover 会被保存到内核日志中。在这个版本中,snmpd 会设置正确的消息大小,内核不再记录上述消息。
- BZ#947973
- 在以前的 Net-SNMP 版本中,snmpd 在 IF-MIB::ifTable 和 IF-MIB::ifXTable 表中报告了一个无效的网络接口速度(如果接口有 10, 100, 1000 或 2500 MB/s)。因此,如果将 Virtual Connect 速度设定为(如 0.9 Gb/s),则返回的 net-snmp ifHighSpeed 值是 "0"。在这个版本中,ifHighSpeed 值返回 ethtool 工具中报告的正确速度,snmpd 可以正确地报告非标准网络接口速度。
- BZ#953926
- net-SNMP 不会验证传入的 SNMP 消息是否正确编码。在某些情况下,它会在解析消息中带有无效大小的接收缓冲区大小时读取过去接收缓冲区大小。这会导致 SNMP 陷阱处理守护进程的 snmptrapd 意外终止,并显示传入格式消息上的分段错误。在这个版本中,当解析带有无效整数大小的传入消息时,snmptrapd 的检查不再会崩溃。
- BZ#955771
- 在以前的版本中,Net-SNMP python 模块不会向使用此模块的应用程序传播各种错误。因此,应用程序不知道 SNMP 通信过程中发生的 erros。要解决这个问题,Net-SNMP python 模块已更新,以返回正确的错误代码。现在,应用程序会接收 SNMP 错误的信息。
- BZ#960568
- 在以前的版本中,snmp-bridge-mib 子代理将桥接本身作为 BRIDGE-MIB::dot1dBasePortTable 表中的网桥端口包含。这个程序错误已被解决,snmp-bridge-mib 子代理现在仅将实际接口报告为 BRIDGE-MIB::dot1dBasePortTable 表中的端口。
- BZ#968898
- 在以前的版本中,snmpd 守护进程在处理 "agentaddress" 配置选项时无法正确终止字符串。因此,当使用 SIGHUP 信号重新读取配置多次时,会发生缓冲区溢出。这个程序错误已被解决,snmpd 现在可以在 "agentaddress" 处理过程中正确终止字符串,且不再使用 SIGHUP 信号崩溃。
- BZ#983116
- 以前的 Net-SNMP 更新包含一个修复程序,以改进对无效传入 SNMP 消息的检查。在这个版本中,引入了一个回归,一些带有多个变量的有效 SNMP 消息被标记为无效。因此,Net-SNMP 工具和服务器会拒绝有效的 SNMP 消息,并等待 "proper" 响应等待超时。在这个版本中,有效的 SNMP 消息不再被拒绝。因此,服务器和实用程序接受第一个传入的消息,且不会等待超时。
- BZ#989498, BZ#1006706
- 在以前的 Net-SNMP 更新中,对 HOST-RESOURCES-MIB::hrStorageTable 表的实现已被重写,并且没有报告带有 Virtuozzo 文件系统(VZFS)和 B-tree 文件系统(BTRFS)的设备。在此次更新之后,snmpd 使用 VZFS 和 BTRFS 文件系统正确识别设备,并在 HOST-RESOURCES-MIB::hrStorageTable 中报告它们。
- BZ#991213
- 在以前的版本中,snmpd 守护进程会错误地解析启用了队列组的 Sendmail 配置文件。因此,snmpd 在启动时输入一个循环。在这个版本中,使用队列组解析配置文件,snmpd 不再在启动时进入循环。
- BZ#1001830
- 在以前的版本中,Net-SNMP 工具和守护进程预期 MD5 哈希算法和 DES 加密在系统的 OpenSSL 库中可用,且不在使用这些加密功能时检查错误。因此,当尝试使用 MD5 或 DES 算法时,Net-SNMP 工具和守护进程在系统以 FIPS 模式运行时不可用。Net-SNMP 工具和守护进程现在检查加密功能错误代码,并显示以下出错信息:
Error: could not generate the authentication key from the supplied pass phrase
因此,上述实用程序和守护进程不再在 FIPS 模式中崩溃。
功能增强
8.122. netcf
8.122.1. RHBA-2013:1660 - netcf 程序错误修复更新
程序错误修复
8.123. NetworkManager
程序错误修复
- BZ#922558
- 在以前的版本中,
NetworkManager
不会从 DHCP (动态主机配置协议)服务器显式请求静态路由,因此一些服务器不会提供这些路由。在这个版本中,NetworkManager
现在在可用时从 DHCP 服务器请求静态路由。 - BZ#701381
- 在以前的版本中,用户无法在
NetworkManager
中选中Enable Wireless
框,因为字段没有响应。此外,在禁用并重新启用硬件后,NetworkManager
中无法使用Enable Wireless
connection 选项。在这个版本中,用户可以在重新启用其硬件后从 GUI 打开无线连接。 - BZ#1008884
- 当在某些虚拟机(VM)配置中运行
NetworkManager
小程序时,点击该图标可能会导致小程序意外终止。这个程序错误已被解决,小程序不会在这些配置中崩溃。 - BZ#923648
- 在以前的版本中,通过
NetworkManager
连接编辑器(nm-connection-editor
)创建的网桥和绑定连接没有设置为自动连接,因此必须手动启动。在这个版本中,这些连接默认会在创建时自动启动。 - BZ#896198
/etc/sysconfig/network
文件中的GATEWAY
设置会导致NetworkManager
将该GATEWAY
分配给所有具有静态 IP 地址的接口。即使没有为这些地址指定GATEWAY
或不同的场景。要修复此程序错误,如果在/etc/sysconfig/network
中提供了GATEWAY
,则仅给出具有匹配网关地址的配置。或者,DEFROUTE=yes/no
选项可以在单独的配置文件中使用,以根据每个配置允许或拒绝默认路由。- BZ#836993
- 在以前的版本中,当通过
NetworkManager
使用带有令牌不同步的vpnc
程序时,服务器会提示输入下一个令牌。但是,NetworkManager
会错误地解析这个响应并报告失败的连接。在这个版本中,在NetworkManager-vpnc
工具中添加了新的令牌代码提示,从而解决了这个问题。 - BZ#991341
- 在此次更新之前,在收到 IPv6 路由器公告时,
NetworkManager
会尝试替换内核添加的 IPv6 默认路由。因此,内核会返回以下失败信息:'ICMPv6 RA: ndisc_router_discovery() failed to add default route.'
要解决这个问题,NetworkManager
不再替换内核添加的 IPv6 默认路由。 - BZ#758076
- 在以前的版本中,无法通过
nm-connection-editor
中的"Choose certificate"对话框窗口选择证书颁发机构(CA)证书。这会给用户造成混淆。对话框复选框信息已被一个更加的信息,从而解决了这个问题。 - BZ#919242
- 在以前的版本中,当因为
/etc/sysconfig/network
文件中缺少NM_BOND_bridge_ VLAN _ENABLED
选项而导致网桥、绑定或 VLAN 接口,NetworkManager
nm-connection-editor
)仍允许用户创建这些类型的网络连接。现在,当创建不可用的连接时,编辑器会警告用户,从而解决了这个问题。 - BZ#915480
- 在以前的版本中,
NetworkManager
GUI 小程序(nm-applet)没有在菜单中显示网桥、绑定或 VLAN 接口。在这个版本中,nm-applet
已改进,以显示配置的所有可用绑定、网桥和 VLAN 接口,但尚未创建。 - BZ#905532
- 由于一些缺少的绑定接口选项,/sys/class/net/bond0/bonding/primary 文件在安装过程中为空。另外,网络流量会在安装过程中通过 eth0。这个程序错误已被解决,
NetworkManager
现在支持一组更大的绑定接口选项。 - BZ#953076
- 在以前的版本中,在某些情况下,
NetworkManager
无法设置绑定 master 接口的模式。现在,提供了一个补丁来修复这个程序错误,模式设置现在会根据nm-editor
更改而改变。 - BZ#953123
- 在以前的版本中,
NetworkManager
连接编辑器(nm-connection-editor
)不允许为 VLAN 接口设置克隆的 MAC 地址。已提供了一个补丁来修复这个错误,nm-connection-editor
现在可以正常工作。 - BZ#969363
- 在此次更新之前,
nm-online
的手册页没有描述nm-online
参数的正确用法,如 the-t
选项。man page 已更新,以正确描述其参数的使用。 - BZ#973245
- 在以前的版本中,
NetworkManager
只编写并保存与标准ifcfg
网络配置文件兼容的连接类型。这个程序错误已被解决,其它连接类型(如 Bluetooth、WWAN )现在可以保存为/etc/NetworkManager/system-connections/
目录中的 keyfiles。 - BZ#902372
- 在以前的版本中,当控制现有网桥时,
NetworkManager
无法保证干净的网桥状态。在这个版本中,NetworkManager
重置网桥选项并删除所有网桥端口,这样可确保在启动时清理网桥状态,并启用了桥接支持。 - BZ#867273
- 在使用 InfiniBand (IB)设备在机器上配置 IP-over-InfiniBand (IPoIB)配置集后,配置集不会被连接。这个程序错误已被解决,在网络小程序菜单中列出了 IP-over-Infiniband (IPoIB)网络配置。
- BZ#713975
- 在为新的无线网络连接更改身份验证或内部身份验证下拉菜单后,"每次重置此密码"复选框。要修复这个程序错误,更新的
NetworkManager
GUI 小程序会在连接到 WPA Enterprise 网络时保存复选框值。 - BZ#906133
- 在此次更新之前,当指定 BSSID (基本服务集标识符)时,Ad-Hoc WiFi 网络无法启动,因为内核限制。要解决这个问题,
NetworkManager
连接编辑器(nm-connection-editor
)不允许为 ad-Hoc WiFi 连接设置 BSSID,因为这个值由内核自动选择。
功能增强
- BZ#602265
- 有了这个更新,
NetworkManager
已被改进,支持通过以太网(PPPoE)的基于点对点协议的创建和管理。NetworkManager
现在会在重新连接 PPPoE 连接前等待短暂的时间,以确保对等连接就绪。 - BZ#694789
- 添加了一个新的
GATEWAY_PING_TIMEOUT
配置选项。这个新选项可确保NetworkManager
在指示网络连接前等待网关
成功 ping。 - BZ#990310
NetworkManager
现在读取ifcfg
别名文件,并将其中的地址分配给其主接口,使用别名名称作为地址标签。- BZ#564467, BZ#564465
- 已创建
nm-connection-editor
和nm-applet
工具的手册页。
8.124. nfs-utils
程序错误修复
- BZ#889272
- 当"Background",在 nfsmount.conf 配置文件的多个部分中设置了 "Foreground" 或 "timeo" 选项时,生成的解析值中都会错误地显示这些选项。在这个版本中,更改了此行为,以便任一选项的第一个实例会覆盖之前的任何实例。另外,配置文件选项可能已被错误地传递给与正在执行的选项无关的 mount syscall。解析器已进行更严格,因此每个选项可以最多显示四次:系统部分一次、特定于服务器的章节一次,一次用于特定于挂载的章节,一次用于命令行挂载选项。
- BZ#890146
- 在此次更新之前,运行 "nfsstat -s -o rpc" 命令会在表标头中生成带有不正确的标签的输出。在这个版本中,底层源代码已被调整,以确保所有列现在都有正确的名称。
- BZ#892235
- 启动 nfs 服务会导致以下输出:
Stopping RPC idmapd: [ OK ] Starting RPC idmapd: [ OK ]
虽然事件序列需要首先停止,然后启动 RPC idmapd 服务,但之前必须启动 RPC idmapd 服务,但当前的初始化脚本不需要此行为。这个问题已被修正,因此启动 nfs 服务现在只会导致一个"Starting RPC idmapd"状态显示。 - BZ#950324
- 在运行 sm-notify 时,指定 "-v <ip_address>" 或 "-v <hostname>" 选项在 nfs-utils 软件包更新至版本 1.2.2 后无法正常工作。在这个版本中,修正了地址处理逻辑,以便使用 '-v' 选项指定主机名、IPv4 或 IPv6 IP 地址可以正常工作。
- BZ#952560
- nfs (5)手册页包含有关"retrans=n"选项的不正确的信息,其中指定 NFS 客户端在尝试进一步恢复操作前重试请求的次数。此信息已被修正,现在根据协议类型指定尝试次数。对"retrans=n"选项的手册页修正为:NFS 客户端在尝试进一步恢复操作前,其重试请求的次数。如果没有指定 retrans 选项,NFS 客户端会尝试每个使用 UDP 的挂载尝试三次,并使用 TCP 进行挂载两次。
8.125. Nmap
8.125.1. RHBA-2013:0881 - nmap 程序错误修复更新
程序错误修复
8.126. NSS 和 nspr
程序错误修复
- BZ#702083
- PEM 模块对客户端应用程序施加限制,以使用派生证书的唯一基础文件名。因此,客户端应用程序的认证和密钥相同,但不同的文件路径无法加载,因为它们被错误地认为是重复的。现在,修改了比较算法,PEM 模块可以正确地决定唯一性,无论用户如何命名其文件。
- BZ#882408
- 由于 nss 软件包的上游版本不同,尝试启用不支持的
SSL PKCSxdg 绕过
功能会失败,并显示严重错误信息。这个行为可能会破坏某些调用的语义,从而破坏应用程序二进制接口(ABI)兼容性。在这个版本中,nss 软件包已被修改,以保留上游行为。因此,尝试启用SSL PKCSRoCE 绕过
不再失败。 - BZ#903017
- 在以前的版本中,与智能卡相关的认证代码中有一个竞争条件。因此,当 Firefox 证书管理器中查看通用访问卡(CAC)或个人身份验证(PIV)智能卡证书时,Firefox Web 浏览器将变得无响应。底层源代码已被修改以修复竞争条件,在上述场景中 Firefox 不再挂起。
- BZ#905013
- 由于 Netscape Portable Runtime (NSPR)代码中的错误负责线程同步,有时会发生内存损坏。因此,在向 NSPR 库发出 1023 调用后,web 服务器守护进程(
httpd
)有时会意外终止并出现分段错误。在这个版本中,改进了 NSPR 释放之前分配的内存的方式,httpd
在上述场景中不再崩溃。 - BZ#918136
- 在 nss 软件包的 3.14 上游版本中,默认禁用使用数字签名中的 MD5 哈希算法支持证书签名。但是,某些网站仍然使用基于 MD5- 的签名,因此尝试访问此类网站会失败并显示错误。在这个版本中,数字签名中的 MD5 哈希算法再次支持,以便用户可以按预期使用此算法连接到网站。
- BZ#976572
- 在这个版本中,从上游版本 3.14.1 开始,对 Galois/Counter Mode (GCM)的实现的修复已被向后移植到 nss 软件包。因此,用户可以使用 GCM,而无需在上游版本中记录并修复任何问题。
- BZ#977341
- 在以前的版本中,cert util -H 命令的输出(这是
certutil
工具使用的选项和参数列表)没有描述-F
选项。现在,添加了此信息,选项现在会在 certutil -H 的输出中正确描述。 - BZ#988083
- 在以前的版本中,
pkcs11n.h
标头缺少某些常量来支持传输层安全(TLS) 1.2 协议。常量已添加到 nss-util 软件包中,NSS 现在支持 TLS 1.2。 - BZ#990631
- 在以前的版本中,网络安全服务(NSS)恢复
pkcs11.txt
文件的权限,以便只有文件所有者才能读取该文件并写入它。这个行为覆盖了用户指定的其他权限。因此,用户无法使用系统范围的安全数据库将安全模块添加到自己的配置中。这个版本提供了一个补丁来修复这个程序错误。因此,NSS 保留pkcs11.txt
的现有权限,用户现在可以修改 NSS 安全模块数据库。 - BZ#1008534
- 由于网络安全服务(NSS)中的一个错误,IPA (身份、策略、审计)服务器的安装意外终止,并返回错误。这个程序错误已被解决,IPA 服务器的安装可以如预期进行。
- BZ#1010224
- NSS
softoken
加密模块没有确保在运行自我测试前正确初始化freebl
库。因此,某些客户端(如轻量级目录访问协议(LDAP)客户端)可以初始化并完成 NSS。在这种情况下,清理和卸载freebl
。当再次加载库时,尝试意外运行测试会导致客户端失败,如传输层安全(TLS)连接错误。这个程序错误已被解决,现在softoken
现在可以在运行自我测试前正确初始化freebl
。因此,在上述场景中不再会出现失败。
功能增强
8.127. ntp
8.127.1. RHBA-2013:1593 - ntp 程序错误修复和功能增强更新
程序错误修复
- BZ#673198
- 在尝试从互联网获取日期和时间更新前,ntpdate 服务不会等待 NetworkManager 服务配置网络。因此,如果没有配置网络,ntpdate 无法设置系统时钟。在这个版本中,当初始尝试失败时,ntpdate 会尝试以几个增加的间隔从互联网获取更新。现在,即使 NetworkManager 需要较长的时间来配置网络,系统时钟也会设置较长的时间。
- BZ#749530
- ntp-keygen 工具总是使用 DES-CBC (数据加密标准 Cipher Block Chaining)加密算法来加密私有 NTP 密钥。但是,在 FIPS 模式中不支持 DES-CBC。因此,当在启用了 FIPS 模式的系统中使用时,ntp-keygen 会生成空的私钥。要解决这个问题,在 ntp-keygen 添加了一个新的"-C"选项,它可用于为私钥文件选择加密算法。现在,在启用了 FIPS 模式的系统中生成私有 NTP 密钥。
- BZ#830821
- ntpstat 程序没有将 root 延迟包括在 "time correct to within" 值中,因此实际的最大错误可能大于 ntpstat 报告的值。已修复 ntpstat 工具,如预期包括 root 延迟,且工具显示的"时间正确"值现在正确。
- BZ#862983
- 将 DHCP 提供的 NTP 服务器(使用 dhclient-script)添加到 ntp.conf 文件时,ntp 脚本不会验证 ntp.conf 是否已包含这些服务器。这可能会导致配置文件中的重复的 NTP 服务器条目。这个版本修改了 ntp 脚本,以便在 ntp.conf 文件中不再发生重复的 NTP 服务器条目。
- BZ#973807
- 当 ntpd 配置为广播客户端时,它不会在网络配置更改时更新广播套接字。因此,广播客户端在网络服务重启后停止工作。这个版本修改了 ntpd,以在网络接口更新后更新广播客户端套接字,以便客户端在网络服务按预期工作后继续工作。
功能增强
- BZ#623616, BZ#667524
- NTP 现在在默认 ntp.conf 文件中指定带有 iburst 配置选项的四个非站点 NTP 服务器,从而可以更快地进行时间同步并提高了 NTP 服务的可靠性。
- BZ#641800
- NTP 添加了对使用 SHA1 symetric 密钥进行身份验证的支持。SHA1 密钥可以通过 ntp-keygen 工具生成,并在客户端和服务器机器的 /etc/ntp/keys 文件中配置。
- BZ#835155
- 在 NTP 中添加了对已签名响应的支持。当使用 Samba 4 作为 Active Directory (AD)域控制器(DC)时,需要此项。
- BZ#918275
- 添加了一个新的各种 ntpd 选项 "interface"。此选项允许控制 ntpd 打开哪些网络地址以及是否在不处理的情况下丢弃传入的数据包。有关使用"interface"选项的更多信息,请参阅 ntp_misc (5)手册页。
8.128. numactl
8.128.1. RHBA-2013:1712 - numactl 程序漏洞修复更新
程序错误修复
8.129. numad
8.129.1. RHBA-2013:1705 - numad 程序错误修复和功能增强更新
程序错误修复
功能增强
- BZ#913546
- Red Hat Enterprise Linux 6 添加了新的 logrotate 工具的配置文件。
8.130. opencryptoki
8.131. opencv
8.131.1. RHBA-2013:1118 - opencv 程序错误修复更新
错误修复
- BZ#658060
- OpenCVConfig.cmake 文件在 32 位和 64 位构架上具有不同的内容,并在 /usr/share 目录下安装。因此,opencv-devel 软件包无法安装到 multilib 环境中。在这个版本中,OpenCVConfig.cmake 文件已移到 /usr/lib (64)目录,opencv-devel 软件包现在可以在 multilib 环境中安装。
8.132. openhpi
8.132.1. RHBA-2013:1532 - openhpi 程序错误修复更新
程序错误修复
- BZ#891626
- 由于 power_supply () 解析例程中有一个错误,一些返回的字符串可能包含错误显示的字符。因此,通过 OpenHPI API 检索电源单元(PSU)的序列号会导致字符串包含这些字符。在这个版本中,确保为 PSU 返回了正确的串行和部分数字,返回的字符串现在仅包含有效的字符。
- BZ#924852
- 在以前的版本中,OpenHPI 缺少支持某些 RDR (带有 Reply)传感器的代码。因此,在提取和重新插入通过 Onboard Administrator (OA) SOAP 插件监控的保护机制后,以下错误消息将返回到日志文件:openhpid: ERROR: (oa_soap_sensor.c, 2005, RDR not present) openhpid: ERROR: (oa_soap_fan_event.c, 279, 处理传感器 24 失败)这个程序错误已被解决,现在在提取组件和重新插入组件后不会记录错误消息。
- BZ#948386
- 在某些情况下,当将 OpenHPI 与 Onboard Administrator (OA) SOAP 插件搭配使用时,当 OA 交换机发生时,HPI 客户端变得无响应,或者 openhpi 守护进程无法连接到新的活跃 OA。因此,客户端无法检索事件和数据。已提供了一系列补丁来更好地考虑 OA 故障转移情况,从而解决了这个问题。
- BZ#953515
- 在此次更新之前,OpenHPI 缺少了对某些刀片服务器的支持。因此,OpenHPI 守护进程会意外终止,并在这些服务器上启动时出现分段错误。提供了一个补丁来添加缺少的支持,OpenHPI 守护进程不会在上述场景中崩溃。
- BZ#953525
- 由于缺少对某些rmal sensors 的支持,getBladeInfo ()函数可能会意外终止,从而导致整个发现过程失败。在这个版本中,添加了对这些传感器和 OpenHPI 发现功能的支持现在可以正常工作。
8.133. openscap
错误修复
- BZ#999903
- 在以前的版本中,oscap 工具在查询 RPM 数据库(RPMDB)时无法正确处理对象评估的过程。如果进程被中止,则在查询上创建的 RPMDB 迭代器无法正确删除,这会导致 RPMDB 损坏。在这个版本中,创建的 RPMDB 迭代器被正确删除,进程中止不再会导致 RPMDB 崩溃。
8.134. openssh
安全修复
- CVE-2010-5107
- 默认的 OpenSSH 配置使远程攻击者可以轻松地耗尽未经授权的连接插槽,并防止其他用户登录到系统。默认情况下,通过把 MaxStartups 设置为 10:30:100 来启用随机早期连接丢弃来解决这个问题。如需更多信息,请参阅 sshd_config (5)手册页。
程序错误修复
- BZ#872169
- 使用 syslog 工具记录时,需要一个现有的 /dev/log 套接字,它不适用于基于用户主目录的所有 chroot 环境。在以前的版本中,要修复这个问题,应用了补丁来保持 syslog 文件描述符被打开。但是,syslog 库已被更改,使用的高度停止工作。因此,sftp 命令没有记录在内部 sftp 子系统中的 chroot 设置中。补丁已调整到新条件,sftp 命令会记录在内部 sftp 子系统中的 chroot 设置中。
- BZ#880575
- 在以前的版本中,当用户尝试使用自己的未保护的私钥时,ssh 工具会显示以下信息:
It is recommended that your private key files are NOT accessible by others.
密钥随后被拒绝,这可能会导致混淆,因为行为与消息不一致。在这个版本中,消息已被改为:It is required that your private key files are NOT accessible by others.
- BZ#896561
- ssh-agent 工具无法打开更多连接,并可能会因为竞争条件而变得无响应。竞争条件已被修复,ssh-agent 在此场景中不再挂起。
- BZ#954094
- 如果 "bindpw" 选项包含双引号,则 ssh-ldap-helper 解析器无法正确解析它,ssh-ldap-helper 无法绑定到 LDAP 服务器。有了这个更新,ssh-ldap-helper 可以正确地解析 LDAP 配置文件。
- BZ#955792
- 在此次更新之前,非 ASCII 字符已被横幅消息中的八进制表示替代,以防止终端重新编程攻击。因此,客户端中没有正确显示包含 UTF-8 字符串的横幅。在这个版本中,横幅消息会根据 RFC 3454 处理,已删除控制字符,包含 UTF-8 字符串的横幅会被正确显示。
- BZ#974096
- 在以前的版本中,如果目标用户的 /tmp/ 目录是 polyinstantiated,则在启动可插拔验证模块(PAM)会话后,远程机器上不会找到凭证缓存。因此,Kerberos 票据转发无法正常工作。在这个版本中,在启动 PAM 会话后,缓存会在新的 /tmp/ 目录中重新创建,Kerberos 票据转发现在可以正常工作。
- BZ#993509
- 在以前的版本中,如果 sshd 守护进程被配置为强制内部 SFTP 会话,守护进程无法正确处理交互式会话的请求。因此,sshd 不会终止 SSH 连接,SSH 客户端可能会变得无响应。有了这个更新,sshd 已修改为返回只允许 SFTP 连接的错误消息,SSH 客户端在这种情况下不再挂起。
功能增强
- BZ#906872
- 在这个版本中,增加了对使用新的 OpenSSH 证书格式用户和主机的证书身份验证的支持。证书包含公钥、身份信息和有效期限制,并使用 ssh-keygen 工具使用标准 SSH 公钥进行签名。请注意,Red Hat Enterprise Linux 6 附带的 ssh-keygen 版本使用"-Z"选项来指定主体。有关此功能的更多信息,请参阅 /usr/share/doc/openssh-5.3p1/PROTOCOL.certkeys 文件。
- BZ#908038
- 在这个版本中,增加了对 PKCSxdg 令牌的支持。现在,OpenSSH 客户端可以使用智能卡进行身份验证。
- BZ#951704
- KexAlgorithms 配置选项已添加到 ssh 实用程序和 sshd 守护进程中的客户端和服务器配置中。指定 KexAlgorithms 可让用户和管理员选择密钥交换方法及其顺序或首选项。
- BZ#969565
- 在这个版本中,在 OpenSSH 中的基于Hash 的消息身份验证代码(HMAC)中添加了对 SHA-2 Secure Hash Algorithm 的支持。
- BZ#993577
- 新的联邦信息处理标准(FIPS)验证需要随机数字生成器(RNG),其至少为 112 位的熵,而不是之前的 80 位。因此,SSH_USE_STRONG_RNG 环境变量的最小值增加到 14。
- BZ#1001565
- 新的联邦信息处理标准(FIPS)验证要求在安装 FIPS 模块时在所有情况下运行 Power On Self Test (POST)。在这个版本中,POST 自测试会在 SSH 客户端和 SSH 服务器上运行(如果已安装 dracut-fips 软件包)。
8.135. openssl
程序错误修复
- BZ#830109
- 在以前的版本中,不正确的变量大小被传递给 getsockopt ()函数。因此,在 datagram 模式中使用 BIO (OpenSSL I/O)层会导致使用分段错误终止。更具体地说,openssl s_client 命令在启用了 "-dtls1" 选项的 IBM System z 上意外终止。在这个版本中,使用正确大小的变量,datagram BIO 功能将不再使用 System z 上的分段错误终止。
- BZ#919404
- 在此次更新之前,getaddrinfo ()函数返回一个在 openssl s_server 命令实现中错误错误。因此,OpenSSL s_server 无法在只使用 IPv4 的系统上工作。在这个版本中,当 getaddrinfo ()在 IPv6 地址上失败时,代码已被修改,以回退到 IPv4 地址查找。因此,openssl s_server 现在可以在只配置 IPv4 地址的计算机上正确启动。
功能增强
- BZ#818446
- 现在,使用 Intel RDRAND 指令生成随机数字,并替换了默认的 OpenSSL 随机数字生成器。当 OpenSSL 以 FIPS 模式运行时,不使用该指令。
- BZ#929291
- 改进了当前 IBM PowerPC 处理器上的 OpenSSL 性能。
- BZ#951690
- 现在,在 OpenSSL 中启用了 elliptic curve 数字签名算法(ECDSA)和 elliptic curve Diffie-Hellman (ECDH)算法。这些算法只支持在美国标准和技术(NIST) Suite B 规范中列出的 elliptic curves。
- BZ#951701
- 新的 "-trusted_first" 选项已添加到 OpenSSL 中。这可让首选本地存储的中间证书,而不是 TLS 服务器发送的中间证书。
- BZ#969562
- OpenSSL 库现在支持传输层安全(TLS)协议版本 1.1 和 1.2。
- BZ#969564
- 在这个版本中,在使用在构建前配置 OpenSSL 时,使用 "%{_prefix}" 宏而不是在 openssl.spec 文件中硬编码的 /usr/ 目录。
- BZ#987411
- OpenSSL 现在支持 TLS 协议的下一个协议协商(NPN)扩展。此扩展允许在 TLS 握手期间协商应用程序协议,供应用程序使用。
- BZ#993584, BZ#999867
- 由于 FIPS 验证要求,安装 FIPS 模块时必须运行 FIPS Power-on self-tests (POST)。对于库,这通过从动态库构造器函数运行 self-tests 来确保。如果安装了 dracut-fips 软件包,OpenSSL 现在将其视为一个指示 OpenSSL FIPS 模块已安装并完成,并在载入 OpenSSL 动态库时运行 self-tests。
8.135.2. RHBA-2013:1751 - openssl 程序漏洞修复更新
程序错误修复
- BZ#1025597
- 在以前的版本中,当 Cyrix CPU 上运行时,OpenSSL 代码会错误地使用 RDRAND 指令,这不支持它。因此,使用 OpenSSL 工具的应用程序在启动时意外终止。Cyrix CPU 上的 CPU 功能检测已被修复,使用 OpenSSL 的应用程序不会在上述场景中崩溃。
- BZ#1025598
- 在此次更新之前,传输层安全(TLS)客户端公告对一些不支持的 elliptic curves 的支持。因此,服务器可能会选择不支持的 elliptic curve,客户端无法通过 TLS 与服务器通信。在这个版本中,OpenSSL TLS 客户端只公告它支持的 curves,并且与服务器的 TLS 通信(使用 Red Hat Enterprise Linux OpenSSL TLS 客户端不支持的 curves)现在可以建立。
8.136. openswan
程序错误修复
- BZ#771612
- 在以前的版本中,在 /var/log/lastlog 文件中称为 grep 工具的 "ipsec barf" 命令会导致系统使用大量内存。在这个版本中,"ipsec barf"使用 "lastlog -u user" 命令,这会阻止工具使用太多内存。
- BZ#831669
- 根据 RFC 5996 标准,无论其值如何,必须忽略保留字段。但是,对于某些有效负载,在接收时不会忽略保留字段的内容。因此,Openswan 报告出错信息,互联网密钥交换(IKE)协商失败。在这个版本中,Openswan 已被修改,忽略保留字段和 IKE 协商可以成功,无论保留字段值是什么。
- BZ#831676
- 当在传输模式下配置连接时,Openswan 在安全关联(SA)设置过程中不会将流量选择器的信息传递给 NETKEY/XFRM IPsec 内核堆栈。因此,这些信息在 "ip xfrm state" 命令的输出中不可用。在这个版本中,当以传输模式设置 SA 时,Openswan 会正确地将流量选择器信息传递给内核。
- BZ#846797
- 当隧道在两个 IPsec 主机(如 host1 和 host2)之间建立时,使用死对等检测 DPD,如果 host2 在 host1 持续传输数据时,host1 会在 DPD 操作后持续排队多个阶段 2 请求。当 host2 重新上线时,将建立待处理阶段 2 请求的堆栈,保留一个新的 IPsec Security Association (SA),以及大量消耗系统资源并最终过期的额外 SA 组。在这个版本中,Openswan 在 host2 停机时只有一个待处理的阶段 2 请求,在 host2 备份时,只会建立一个新的 IPsec SA,从而防止这个程序错误。
- BZ#848132
- 当隧道在两个 IPsec 主机(如 host1 和 host2)之间建立时,使用 "dpdaction=restart" 选项,如果 host2 离线并且已激活了 Dead Peer Detection (DPD),新的 phase1 替换启动了重新传输,但会受有限数量的重试,即使"keyingtries=%forever"选项被激活,也会设置它。如果 host2 没有及时重新连接,则 phase1 替换过期,然后隧道在旧的 phase1 安全关联(SA)过期前不会重新密钥(默认为大约 10 分钟)。这意味着,使用 "dpdaction=restart" 选项只允许对等窗口重新连接。在这个版本中,phase1 替换将继续尝试重新密钥,从而避免重新传输限制和超时。
- BZ#868986
- 在以前的版本中,使用 "rightid" 连接选项中指定的证书(包含逗号)被忽略,这些连接不会因为 ID 不匹配而被验证。在这个版本中,Openswan 现在支持 "rightid" 选项的 OID 字段中的转义逗号。
- BZ#881914
- 在以前的版本中,当使用 SHA2 摘要算法签名的证书用于对等身份验证时,连接设置会失败并显示以下错误:
digest algorithm not supported
这个程序错误已被解决,Openswan 现在可以识别这些证书并正确设置连接。 - BZ#954249
- openswan 软件包用于互联网协议安全(IPsec)包含两个诊断命令 "ipsec barf" 和 "ipsec look",这可能会导致 NAT 和 IP 连接跟踪的 iptables 内核模块被加载。在非常忙碌的系统中,载入此类内核模块可能会导致性能下降,或者在内核耗尽资源时造成崩溃。在这个版本中,诊断命令不会导致加载 NAT 和 IP 连接跟踪模块。这个版本不会影响已经使用 IP 连接跟踪或 NAT 作为 iptables 和 ip6tables 服务的系统,这些内核模块已加载。
- BZ#958969
- 在以前的版本中,当 IPsec 守护进程(pluto)试图验证证书撤销列表(CRL)的签名时,如果签名值以零字节开头,且另一个零为零,则 mpz ()函数剥离所有前导零。这会导致网络安全服务(NSS)数据输入较短,因此当 NSS 将其长度与 modulus 长度进行比较时,无法验证失败。在这个版本中,转换删除了到任意的算术(bignum)对象,并通过移动指针来转发并减少签名长度,从而处理前导零。因此,即使签名中带有前导零,验证 CRL 现在可以正常工作。
- BZ#960171
- 在以前的版本中,plutomain.c 文件中的 load_crls ()和 load_authcerts_from_nss () 函数的顺序不正确。因此,当 IPsec 守护进程(pluto)尝试加载 /etc/ipsec.d/crls/ 目录中的证书撤销列表(CRL)时,加载会失败,因为当没有可用的认证机构(CA)时,加载会失败,因为会检查载入的证书颁发机构(CA)。在这个版本中,交换了 plutomain.c 文件中上述功能的顺序,现在 pluto 不再在启动过程中失败,并成功加载 CRL。
- BZ#965014
- 在以前的版本中,Openswan Internet Key Exchage 版本 2 (IKEv2)实现不会将 "reserved" 字段设置为零。因此,Openswan 没有通过 TAHI IKEv2 测试。在这个版本中,Openswan 将 "reserved" 字段设置为零,并成功通过 TAHI IKEv2 测试。
- BZ#975550
- 在以前的版本中,当在 Openswan 中的互联网密钥交换版本 2 (IKEv2)算法中使用 MD5 哈希来连接到另一个 IPsec 实现,例如强大的,有时安装的内核安全策略条目与另一端上的相应值不同。因此,即使安全关联(SA)被正确建立,也无法建立连接。在这个版本中,这些值在 Openswan 中正确设置,连接可以成功建立。
- BZ#985596
- 在以前的版本中,当使用 FIPS 模式时,Openswan 不允许使用 SHA2 算法。在这个版本中,启用了在 FIPS 模式中使用 SHA2 算法。
- BZ#994240
- 对将流量选择器传递给传输模式的 XFRM IPsec 堆栈的初始支持不完整,且不包括 NAT 遍历支持的必要工作。因此,Openswan 无法与使用 NAT-Traversal 的设备建立 L2TP 连接。在这个版本中,IPsec Security Association (SA)的方向传递给 netlink_setup_sa ()函数,以便客户端 IP 替换为主机 IP,选择器可用于 NAT 传输模式。
- BZ#1002633
- 在这个版本中,Openswan 使用 dracut-fips 来确定它是否应该以 FIPS 模式运行。
功能增强
- BZ#916743
- 在这个版本中,引入了控制 IPsec 连接的传输延迟时间的功能。
- BZ#880004
- 在这个版本中,Openswan 支持互联网密钥排除(IKE)碎片。Openswan 现在可以成功连接到支持 IKE 碎片的设备。
- BZ#908476
- 对 Internet Key Exchage 版本 1 (IKEv1) INITIAL-CONTACT IPsec 消息的支持,如 RFC2407 规格第 4.6.3.3 节中所述。这解决了一个互操作性错误,因为对等点不会将现有的 IPsec Security Association (SA)替换为新协商的,除非存在通知 Payload 消息。
- BZ#957400
- 内核模块 aesni_intel 现在被 Openswan 在启动时加载。这个更新显著提高了在运行高级加密标准新指令(AES-NI)的机器上 Openswan 的性能。
- BZ#959568
- Openswan 的默认行为是发送 NAT-Traversal keepalive 数据包。禁用发送 keepalive 数据包之前是一个全局选项。在这个版本中,用户可以禁用每个连接的 NAT-Traversal keepalive 数据包发送。
8.137. pacemaker
安全修复
- CVE-2013-0281
- 在某些情况下,Pacemaker 执行身份验证和处理远程连接的方式中发现了一个拒绝服务缺陷。当将 Pacemaker 配置为允许远程 Cluster Information Base (CIB)配置或资源管理时,远程攻击者可以使用这个缺陷导致 Pacemaker 无限期阻断(阻止其他请求)。
程序错误修复
- BZ#902407
- "crm_resource --move"命令是为 atomic 资源而设计的,无法处理多个节点上的克隆、主控机或从设备上的资源。因此,crm_resource 无法获取足够信息来移动资源,也不会执行任何操作。添加了"--ban"和"--clear"选项,以允许管理员指示集群不当。克隆、主资源和从资源现在可以按预期在集群中导航。
- BZ#908450
- hacluster 用户帐户没有在系统上保留的用户标识(UID)或组标识(GID)号。因此,在安装过程中随机选择 UID 和 GID 值。UID 和 GID 号 189 为 hacluster 保留,现在始终用于所有安装。
- BZ#913093
- 某些集群使用的节点主机名与 "uname -n" 命令的输出不匹配。因此,crm_standby 和 crm_failcount 命令使用的默认节点名称不正确,并导致集群忽略管理员的更新。crm_node 命令现在在帮助程序脚本中使用,而不是 uname 实用程序。因此,集群的行为如预期。
- BZ#951371
- 由于返回码处理不正确,在更新配置失败时,crm_mon 工具的内部恢复逻辑不会被执行,从而导致断言失败。现在,返回码会被正确检查,对预期错误状态的恢复现在会被透明处理。
- BZ#996850
- 与 Pacemaker 结合使用时,CMAN 的自动取消隔离功能会失败。添加了对 Pacemaker 中自动取消隔离的支持,不再发生不必要的行为。
8.138. pam
功能增强
- BZ#976033
- 在 TTY audit 期间,通常不需要或不需要记录审计操作器输入的密码。在这个版本中,为 pam_tty_audit PAM 模块添加了一个增强,因此只有在使用 "log_passwd" 选项时,才会在 TTY 控制台中输入的密码记录。因此,除非使用了 pam_tty_audit 的"log_passwd"选项,否则不再记录密码。请注意,在 Red Hat Enterprise Linux 6.5 之前,这个选项不适用于内核版本。
8.139. papi
8.139.1. RHBA-2013:1587 - papi 程序错误修复和安全更新
程序错误修复
- BZ#740909
- 由于 makefile 中缺少依赖项,PAPI 库并行重建会失败。在这个版本中,在 makefile 中添加了新的规则来解决这个问题。因此,可以在上述场景中成功重建 PAPI。
- BZ#785258
- 在以前的版本中,当在 Intel Xeon Processor E5-XXXX 节点上启用了 Hyper-threading 时,PAPI libary 无法将 performance-monitoring 硬件配置为计算浮点操作。这个程序错误已被解决,上面提到的错误不再发生。
- BZ#883475
- 由于 papi.spec 文件中的 ldconfig 设置不正确,所以当 root 用户执行进程时,papi 无法从 srpm 文件重建。在这个版本中,底层源代码已被修改来解决这个问题。
- BZ#883766
- 在以前的版本中,当安装了之前版本的 papi 时,papi 软件包无法从 srpm 文件构建。在构建过程中,papi 的新版本会尝试链接到之前安装的 papi-devel 软件包的 libpfm.so 文件,这会导致 papi 意外终止。在这个版本中,引入了一个补丁来重新排序构建期间的文件链接顺序,以便首先使用本地构建的文件。因此,papi 是使用以前版本正确构建的。
功能增强
8.140. parted
程序错误修复
- BZ#851705
- 从包含唯一分区的设备映射器多路径(DM-Multipath)设备中删除分区后,parted 工具无法按预期删除 DM-Multipath 设备,直到系统重启为止。在这个版本中,libparted 库中的一个 bug 已被修复,parted 现在可以正确地删除 DM-Multipath 设备。
- BZ#869743
- 在以前的版本中,parted 工具只能处理大小限制为未签名的 32 位整数的循环设备。因此,使用带有大于 4 GiB 的 loop 设备的 parted 会失败。在这个版本中,上述限制已增加到未签名的 64 位整数,并且支持 loop 设备最多 2^64 大小。
- BZ#631928
- 在以前的版本中,parted 工具无法处理超过 65535 cylinders 的扩展地址卷(EAV)直接访问存储设备(DASD)。因此,无法使用 parted 分区 EAV DASD 驱动器,在 EAV DASD 驱动器中安装会失败。在这个版本中,增加了对大于 65535 cylinders 的 EAV DASD 设备的支持,parted 现在可以正确处理它们。
8.141. pcs
程序错误修复
- BZ#901588
- 在以前的版本中,pcs 工具不会显示约束规则 ID 和资源操作 ID。因此,用户无法使用 pcs 删除规则,且必须使用其他工具或直接编辑集群信息基础(CIB)。这个更新添加了 "--full" 选项,它显示资源操作和约束规则的 ID,用户现在可以使用 pcs 处理规则。
- BZ#901607
- 在以前的版本中,pcs 工具无法创建限制来提升或降级 master 和 slave 资源。因此,无法使用 pcs 提升或降级 master 和 slave 资源。在这个版本中,pcs 添加了使用 constriants 来提升或降级主资源和从资源的功能。
- BZ#902450
- 在以前的版本中,当用户使用 monitor 操作创建资源时,然后尝试更新 monitor 操作,而不是更新 monitor 操作。因此,无法在 pcs 工具中更新资源监控操作。这个程序错误已被解决,在 pcs 中更新资源监控操作现在可以正常工作。
- BZ#902453
- 当用户在创建资源时选择了不存在的资源代理时,pcs 实用程序不会显示任何错误消息。因此,资源无法启动,但不会通知用户。在这个版本中,添加了一个错误消息,在需要时可以使用 "--force" 标志覆盖,用户现在会在选择不存在的资源代理时正确通知。
- BZ#902460
- 在以前的版本中,当用户提交 unrecognized 选项时,pcs 工具不包含特定的错误消息。因此,pcs 返回回溯而不是错误消息。有了这个更新,pcs 会在上述场景中打印特定的错误消息。
- BZ#903712
- 在检查 Pacemaker 集群的配置时,"pcs config"命令不会显示配置为 master 和 slave 资源的资源。因此,用户必须直接分析 Cluster Information Base (CIB)来查看配置的 master 和 slave 资源及其选项。在这个版本中,提供了一个补丁来解决这个问题,因此 "pcs config" 命令现在显示所有资源,包括 master 和 slave 资源。
- BZ#912496
- 在此次更新之前,在使用 pcs 实用程序创建资源时无法指定多个资源操作。因此,只能创建一个操作的资源。"pcs resource create" 命令已更新,用户现在可以使用多个操作创建资源。
- BZ#912498
- 在以前的版本中,当资源有多个操作时,它们都在同一行中显示。因此,很难查看特定资源的所有操作。在这个版本中,每个资源操作都会在自己的行中显示。
- BZ#912528
- 在以前的版本中,pcs 工具不包含清理资源失败的命令。因此,用户无法清理失败的资源。在这个版本中,添加了 "pcs resource cleanup" 命令来解决这个问题。
- BZ#915248
- 在以前的版本中,pcs 工具不支持检查或重置资源的故障计数。因此,用户必须使用其他不支持的工具。在这个版本中,用户可以使用 "pcs resource failcount show" 和 "pcs resource failcount reset" 命令重置并查看特定资源的失败计数。
- BZ#916993
- 在此次更新之前,pcs 实用程序没有 man page。因此,用户必须使用 "pcs --help" 命令而不是查看 man page。添加了 pcs (8)手册页,用户现在可以使用"man pcs"命令查看 pcs 的完整文档。
- BZ#920767
- 在以前的版本中,pcs 工具不包含管理或不管理资源组的支持。因此,用户只能管理和取消管理单个资源。在这个版本中,增加了必要的支持,用户可以管理和取消管理整个资源组。
- BZ#998970
- 在以前的版本中,在 pcs 实用程序中删除包含资源的组无法正常工作。因此,组被删除,但资源会保留。这个程序错误已被解决,"pcs resource delete " 命令现在可以正确地删除组及其包含的资源。
功能增强
- BZ#887926
- 在这个版本中,增加了对使用标准编辑器为 pcs 实用程序编辑集群配置的支持。这将保存用户的几个步骤,包括保存集群信息基础(CIB),编辑它,然后将其推送回集群。用户可以使用 "pcs cluster edit" 命令在一个步骤中编辑和更新集群配置。
8.142. perl
8.142.1. RHBA-2013:1534 - perl 程序错误修复和功能增强更新
程序错误修复
- BZ#767608
- 在以前的版本中,引用带有不匹配名称的命名捕获组会导致内存泄漏。在这个版本中,底层源代码已被修改,以避免在这种情况下出现内存泄漏。
- BZ#819042
- 当执行 Pod::Man 或 Pod::Text 模块中的 parse_file ()函数时,没有指定功能输出,parse_file ()终止。在这个版本中,parse_file ()已修改为默认使用标准输出。因此,parse_file ()不再会失败,并显示未定义的输出。
- BZ#825713
- 在此次更新之前,find2perl 工具会错误地翻译了包含问号("?")字符的全局表达式。因此,Perl 代码与 'find' 命令行工具不同的表达式匹配。在这个版本中,全局表达式转换器已被修改,find2perl 与 'find' 工具相同的 glob 表达式匹配。
- BZ#839788
- 退出声明了其 destructor 方法但尚未定义的对象范围,这会导致 Perl 解释器意外终止。这个程序错误已被解决,解释器现在可以按预期处理未定义的破坏性方法。
- BZ#905482
- 当构建 XML-LibXSLT 库时,没有安装 libgdm-devel 软件包,它无法链接到其他库。在这个版本中,glibc-devel、gdbm-devel 和 db4-devel 软件包已添加到运行时依赖项的 perl-devel 列表中。因此,现在可以在不复杂的情况下构建原生 Perl 库。
- BZ#920132
- 在模型的子例程中执行带有 "format" 选项的 Perl 代码时,Perl 解释器会意外终止并出现分段错误。在这个版本中,在 perl 软件包中添加了各种向后移植修复。因此,现在可以在没有复杂情况的情况下以模型的子程序格式使用格式。
- BZ#973022
- 在此次更新之前,XML::Simple::XMLin ()解析器没有处理 Getopt::Long::GetOptions ()处理程序的输入。因此,XML::Simple::XMLin ()报告了一个不支持的方法。在这个版本中,Getopt::Long::GetOptions ()已修改为生成一个简单的字符串输出,其他 Perl 模块可以在不复杂的情况下读取其他 Perl 模块。
- BZ#991852
- 安装自定义信号处理程序后,perl 脚本会尝试访问特定于线程的解释器结构。这个结构已被禁用,Perl 会终止分段错误。这个 bug 已被修复,Perl 脚本不再询问解释器结构。因此,Perl 不再在上述场景中崩溃。
功能增强
- BZ#985791
- 在这个版本中,在 perl-core dependences 列表中添加了 CGI.pm 模块。CGI.pm 现在与 perl-core 软件包一起安装。
8.143. Perl-CGI-Session
错误修复
- BZ#657359
- 在以前的版本中,软件包中缺少几个构建时依赖项。因此,无法从源重建软件包。在这个版本中,在软件包中添加了缺少的依赖项,现在可以按预期从源重建。
8.144. perl-Config- General
8.145. perl-DateTime
错误修复
- BZ#978360
- 在以前的版本中,DateTime::Duration 没有识别为 2012-07-01,这会导致在 2012-06-30T23:59:60 秒之间出现不准确的计算时间持续时间。要修复这个程序错误,在 2012-06-30 的末尾会附加一秒到 perl-DateTime leap second database。使用 Perl 模块 DateTime 和 DateTime::Duration 的时间算术现在正确地识别 2012-06-30 秒的步调。
8.146. perl-Makefile-Parser
错误修复
- BZ#657496
- 在以前的版本中,当在没有安装 perl-Time-HiRes 软件包的情况下构建 perl-Makefile-Parser 源 RPM 软件包时,构建过程无法执行 Makefile.PL 脚本。在这个版本中,对 MDOM::Document::Gmake, MDOM::Util, 和 Time::HiRes Perl 模块的构建时依赖项已添加到 RPM 软件包中,且 perl-Makefile-Parser 源软件包现在可以如预期在最小环境中构建。
8.147. perl-Net-DNS
错误修复
- BZ#766357
- 在以前的版本中,一个 AAAA 记录的动态更新会导致 DNS 模块在创建 RDATA 条目时导致 DNS 模块返回 FORMERR 错误,即使地址永远不会指定。因此,从 DNS 区域中删除 AAAA 记录会失败。在这个版本中,添加了一个检查,以确保定义了所需的数据并删除 AAAA 记录现在可以正常工作。
8.148. perl-Socket6
错误修复
- BZ#953873
- 在调用 Socket6 的 man page 时,未找到 man page。构建脚本已被修复,将 POD (Plain Old Documentation)转换为手册页。因此,"man Socket6"命令会如预期正确显示 Socket6 (3)手册页。
8.149. Perl-Test-Memory-Cycle
错误修复
- BZ#621089
- 在以前的版本中,perl-Test-Memory-Cycle 软件包缺少构建要求。因此,无法构建软件包。在这个版本中,对 perl-Test-Memory-Cycle.spec 文件和 perl-Test-Memory-Cycle-Cycle 增加了 perl-CGI 软件包的要求,现在可以按预期构建。
8.150. perl-Test-MockObject
错误修复
- BZ#661804
- 在测试执行时,构建 perl-Test-MockObject 源 RPM 软件包而不安装 perl-CGI 软件包会失败。为修复此错误,RPM 软件包中声明了对 CGI、Test::Builder 和 Test::More Perl 模块的构建时依赖项。因此,可以在最小环境中重建 perl-Test-MockObject 源 RPM 软件包。
8.151. perl-XML-Dumper
错误修复
- BZ#652833
- 由于 XML::Parser 模块缺少依赖项,无法使用 XML::Dumper 模块。在这个版本中,在 perl-XML-Dumper spec 文件中添加了所需的依赖项,XML::Dumper 现在可以按预期使用。
8.152. php
安全修复
- CVE-2006-7243
- 发现 PHP 没有正确处理带有 NULL 字符的文件名。远程攻击者可能会使用这个缺陷使 PHP 脚本访问意外文件,并绕过预期的文件系统访问限制。
- CVE-2013-4248
- 在处理包含 NULL 字节的证书时,PHP 的 SSL 客户端主机名身份检查中发现了一个安全漏洞。如果攻击者能够精心设计由受信任的证书颁发机构签名的证书,攻击者可以利用证书对欺骗 SSL 服务器进行中间攻击。
- CVE-2013-1643
- 找到 PHP SOAP 解析器允许在 SOAP 消息解析过程中扩展外部 XML 实体。远程攻击者可能会使用此缺陷来读取可通过 SOAP 扩展访问 PHP 应用程序的任意文件。
程序错误修复
- BZ#892158, BZ#910466
- 在以前的版本中,当禁用 allow_call_time_pass_reference 设置时,在尝试处理某些 PHP 内容时,Apache 服务器上的虚拟主机可能会终止并带有分段错误。这个程序错误已被解决,当 allow_call_time_pass_reference 为 off 时,虚拟主机不再崩溃。
- BZ#947429
- 在此次更新之前,如果在 fclose ()的操作期间出现错误,file_put_contents ()或 copy ()函数,则函数不会报告它。这可能会导致数据丢失。在这个版本中,上述功能已被修改以正确报告任何错误。
- BZ#969110
- SQLSTATE 错误代码的内部缓冲区可以存储最多 5 个字符。在以前的版本中,当某些调用超过这个限制时,会出现缓冲区溢出。在这个版本中,超过 5 个字符的消息会自动替换为默认的 "HY000" 字符串,从而防止溢出。
功能增强
- BZ#953814
- 在这个版本中,在 php 软件包中添加以下 rpm 宏: %__php、%php_inidir、%php_incldir。
8.153. piranha
8.153.1. RHBA-2013:1618 - piranha 程序错误修复更新
程序错误修复
- BZ#903711
- 在以前的版本中,当所有真实服务器都不可用时,lvsd 守护进程无法正确激活"sorry server"回退服务。因此,没有可用真实服务器的虚拟服务的传入流量不会定向到"sorry server"。这个程序错误已被解决,当没有实际服务器可用时,lvsd 守护进程现在可以正确激活"sorry server"。
- BZ#980169
- 在某些情况下,大多数是由网络中断、director 之间的高延迟或主动 keepalive 和 deadtime 设置导致的,当 pulse 守护进程信号时,lvsd 守护进程无法正确终止。因此,lvsd 在具有多个虚拟 IP (VIP)的 master 和备份目录上运行。在这个版本中,lvsd 已被修改来正确地捕获和处理 pulse 守护进程中的所有信号。现在,冗余 VIP 会被正确删除。
8.154. 389-ds-base
程序错误修复
- BZ#830334
- 由于对错误代码的不正确的解释,目录服务器将无效的链配置设置视为磁盘完整错误并意外终止。现在,使用更合适的错误代码,当指定无效的链配置设置时,服务器将不再关闭。
- BZ#905825
- 从 Red Hat Enterprise Linux 6.3 升级到 6.4 后,升级脚本不会更新
PamConfig
对象类的 schema 文件。因此,由于 schema 违反,无法使用 PAM 的新功能(可插拔验证模块),如多个实例和 pamFilter 属性的配置。在这个版本中,升级脚本会如预期更新PamConfig
对象类的 schema 文件。因此,新功能现在可以正常工作。 - BZ#906005
- 在以前的版本中,valgrind 测试套件报告
modify_update_last_modified_attr()
功能中的重复内存泄漏。每个修改调用的 60-80 字节之间平均泄漏的大小,这可能会导致具有频繁修改操作的环境出现问题。在这个版本中,在modify_update_last_modified_attr()
功能中不再会出现内存泄漏的问题。 - BZ#906583
- 在某些情况下,
目录服务器
(DS)无法替换仅在字母情况下与旧值不同的新值的多值属性。因此,会显示代码 20 错误消息:Type or value exists
在这个版本中,DS
被修改为正确处理修改请求,现在可在不复杂的情况下更改属性值的字母大小写。 - BZ#907985
- 在某些情况下,在尝试使用 uidNumber 属性创建条目时,
DNA
(Distributed Numeric Assignment)插件使用DB_LOCK_DEADLOCK
错误代码记录消息。这个 bug 已被修复,DNA
现在可以正确处理这种情况,错误将不再记录在上述场景中。 - BZ#908861
Posix Winsync
插件是不必要的调用内部modify()
功能。这个内部modify()
调用失败并记录以下信息:slapi_modify_internal_set_pb: NULL parameter
在这个版本中,Poix Winsync
已被修复,不再调用modify()
。因此,上面提到的消息将不再记录。- BZ#910581
- 在某些情况下,
/etc/dirsrv/slapd-dstet-mkubik/dse.ldif
文件在服务器终止或系统关闭时使用 0 字节写入。因此,在系统重启后,DS 或 IdM 系统有时无法启动,从而导致生产服务器中断。写入dse.ldif
的服务器机制已被修改,在上述情况下,服务器中断不再发生。 - BZ#913215
- 在此次更新之前,当尝试删除 tombstone 条目时,
ns-slapd
守护进程会意外终止,并带有 segmentation 错误。这个程序错误已被解决,删除 tombstone 条目不再会导致ns-slapd
崩溃。 - BZ#921937
- 在以前的版本中,
schema-reload
插件不是 thread-safe。因此,在负载下执行schema-reload.pl
脚本可能会导致ns-slapd
进程意外终止,并显示 segmentation 错误。在这个版本中,schema-reload
已修改为 thread-safe,schema-reload.pl
现在可以与其他 LDAP 操作一起执行,而无需复杂情况。 - BZ#923407
- 由于
DNA
(Distributed Numeric Assignment)插件中存在不正确的锁定计时,在DNA
操作与其他插件一起执行时会出现死锁。这个版本移动有问题的锁定的发行时间,DNA
不再导致上述场景中死锁。 - BZ#923502
- 在某些情况下,超出范围本地变量会导致
modrdn
操作意外终止,并显示 segmentation 错误。在这个版本中,修改本地变量的声明,使其不会超出范围。因此,modrdn
操作不再崩溃。 - BZ#923503
- 在以前的版本中,启用了
replica-force-cleaning
选项的cleanallruv
任务不会删除所有配置属性。因此,每次服务器重启时都会启动该任务。在这个版本中,cleanallruv
搜索机制已被修改,cleanallruv
在服务器重启时不再重启。 - BZ#923504
- 由于
Acl
插件中的一个错误,在不存在的条目中使用getEffectiveRights
请求时,会出现 NULL pointer dereference。因此,服务器会意外终止,并显示分段错误。在这个版本中,Acl
已被修改来检查 NULL 条目指针。因此,当在不存在的条目中使用getEffectiveRights
请求时,服务器不再崩溃。 - BZ#923909
- 由于默认
sasl_io
缓冲区的大小不足,因此服务器可能会拒绝 SASL 连接。在这个版本中,缓冲区大小增加到 65,536 字节。此外,用户可以使用nsslapd-sasl-max-buffer-size
设置来增加这个值。现在,在没有复杂情况的情况下接受 SASL 连接。 - BZ#947583
- 在以前的版本中,在一些情况下,负责 389-ds-base 软件包中复制冲突解析的代码无法正常工作,如冲突 DN 生成、检索已删除的父条目,以及检查已删除的条目的范围。因此,可能会创建一个具有正子计数、但没有子级的中间节点条目。然后,服务器拒绝删除此类条目。在这个版本中修复了复制冲突解析代码,从而防止创建不正确的节点条目。
- BZ#951616
- 在以前的版本中,如果 Active Directory 上的组包含位于非同步类型的容器中的成员,则与 LDAP 服务器同步组会失败。因此,有效成员不会被同步。在这个版本中,这些容器中的条目会被忽略,在上述情况下同步现在可以成功。
- BZ#953052
- 在此次更新之前,389-ds-base 软件包中的某些架构定义不符合 LDAP RFC 2252 标准。因此,可能会发生 LDAP 客户端的问题。在这个版本中,这些架构定义已被修正,以符合 LDAP RFC 2252。
- BZ#957305
- 在非常高的数百个同时连接和操作负载时,
目录服务器
可能会在连接处理代码中遇到竞争条件。因此,服务器会意外终止,并显示分段错误。在这个版本中,更新连接对象的代码已移到连接mutex
对象中。因此,目录服务器
不会在高负载下崩溃。 - BZ#957864
- 在此次更新之前,simple Paged Results 控制不支持异步搜索。因此,如果
Directory
服务器收到大量异步搜索请求,则有些请求会终止并显示错误 53:LDAP_UNWILLING_TO_PERFORM
在这个版本中,在 简单页面结果中实现了异步搜索支持。因此,Directory 服务器
可以安全地处理密集型异步搜索请求。 - BZ#958522
- 在以前的版本中,当从数据库载入条目时,会调用
str2entry_dupcheck()
功能而不是更合适的str2entry_fast()
功能。这个行为已被更改,现在在上述场景中调用str2entry_fast()
。 - BZ#962885
- 出于安全原因,Red Hat Enterprise Linux Identity Mangement 服务器的升级将 nsslapd-port 变量的值改为 "0"。nsslapd-port 还用来构造复制使用的 RUV (Replica Update Vector)。在以前的版本中,如果复制启动代码找到了一个 nsslapd-port,它会删除 RUV。因此,复制变得无响应。在这个版本中,在上述场景中不再删除 RUV,从而防止复制挂起。
- BZ#963234
- 在以前的版本中,
目录服务器
无法正确处理空控制列表。因此,会返回 LDAP 协议错误。有了这个更新,目录服务器
已被修改来处理零长度的序列,从而防止错误。 - BZ#966781
- 当新 LDAP 连接的请求与新 LDAPS 或 LDAPI 连接的请求同时存在时,
目录服务器
仅处理 LDAP 请求。在这个版本中,Directory 服务器
已被修改,以同时处理所有监听程序请求。 - BZ#968383
- 在此次更新之前,在创建无效的外部 SASL 绑定时会返回不正确的错误代码(err=0)。在这个版本中,上述场景中会返回正确的错误代码(err=48)。
- BZ#968503
当目录服务器
(DS)在处理 startTLS 请求时遇到错误,服务器会尝试将响应写回客户端。因此,DS 变得无响应。有了这个更新,即使出现网络错误,DS 已被修改来正确处理 startTLS 请求。因此,在上述场景中 DS 不再挂起。- BZ#969210
- 在以前的版本中,
listen()
函数的backlog
参数的大小被设置为 "128"。因此,如果服务器处理了大量同时连接请求,服务器可能会因为超过backlog
大小而丢弃连接请求。在这个版本中,添加了一个nsslapd-listen-backlog-size
属性,以允许更改backlog
大小。 - BZ#970995
- 在以前的版本中,
Directory 服务器
的磁盘监控功能无法正常工作。如果日志记录功能被设置为 "critical" 并禁用了日志记录,则会删除轮转的日志。如果属性nsslapd-errorlog-level
被明确设置为任何值,即使为零,磁盘监控功能不会按预期停止Directory 服务器
。在这个版本中,修正了磁盘监控功能的设置,当达到关键阈值时服务器会关闭。 - BZ#971033
- 在此次更新之前,存储当前连接的客户端数量的连接属性被错误地递增两次,包括
disconnect_server_nomutex()
和connection_reset()
功能。因此,属性包含不正确的值。这个程序错误已被解决,
连接
现在存储了正确的连接的客户端数量。 - BZ#972976
当目录服务器
(DS)同时使用复制和DNA
插件时,并且为同一条目发送 ADD 或 DELETE 请求的客户端,DS 返回以下信息:modify_switch_entries failed
这个程序错误已被解决,上述消息将不再返回。- BZ#973583
- 在
Directory Server
(DS)重启后,内部密码
属性不会被保留。在以前的版本中,在重启 DS 后尝试删除密码
,从而导致 DS 意外终止。在这个版本中,DS 已被修改,以检查password
属性是否存在,如果没有,则跳过删除。因此,在上述情况下 DS 不再崩溃。 - BZ#974361
- 在此次更新之前,当使用
account 策略
插件为基于 createTimestamp 属性的单个用户配置策略时,在 consequent 绑定后会覆盖 createTimestamp。因此,帐户策略
无法锁定用户。在这个版本中,在成功绑定和帐户策略
后,createTimestamp 不再被修改,现在会按预期锁定用户。 - BZ#974719
- 在某些情况下,在处理 tombstone 条目时 modrdn 操作的行为不一致会导致
Directory Server
(DS)意外终止。在这个版本中,DS 被修改为使用 modrdn 正确处理 tombstones,从而防止崩溃。 - BZ#974875
- 在此次更新之前,当将属性配置为加密时,在线导入无法在服务器上加密此属性。在这个版本中,允许在在线导入过程中对消费者进行加密,从而修复这个程序错误。
- BZ#975243
- 在以前的版本中,在从帐户策略中删除 createTimestamp 属性后,此属性仍然由 Directory Server (DS)应用。这个 bug 已被修复,现在可将 createTimestamp 从 DS 帐户策略中删除。
- BZ#975250, BZ#979169
- 在以前的版本中,随着并发搜索、更新和复制操作的组合,死锁可能会在更改日志读取器、写入器和主数据库写入器之间发生。因此,更新操作会失败。在这个版本中,引入了一个新的
nsslapd-db-deadlock-policy
配置参数。此参数的默认值被设置为9
,它会在死锁时终止最后一个锁定程序。在将这个值更改为6
后,会终止具有最少写入锁定的锁定程序,建议遇到频繁死锁的用户。 - BZ#976546
- 在此次更新之前,如果在搜索过程中跳过某些请求的属性,则返回的属性名称和值有时会转换为大写。在这个版本中,删除了不是从请求的属性集中授权的属性,因此返回的属性或值的名称以正确的形式保留。
- BZ#979435
- 在以前的版本中,在修改多 master 复制环境中的单值属性后,这个更改不会复制到其他服务器。在这个版本中,处理复制更新的代码已被修改。因此,对单值属性的修改操作会被正确复制。
- BZ#982325
- 在以前的版本中,使用 ldapmodify 工具将 "nsslapd-disk-monitoring-threshold" 属性设置为大值可以正常工作,但由于 ldapsearch 工具中的一个错误,treshold 的值会显示为负数。在这个版本中,显示 ldapsearch 中的 bug 和正确的 treshold 值。
- BZ#983091
- 在以前的版本中,目录服务器(DS)无法正确释放旧连接使用的内存。因此,当长时间打开和关闭数百个连接时,会出现内存泄漏。在这个版本中,DS 已被修改为释放旧连接使用的内存。因此,在上述场景中,内存泄漏不再发生。
- BZ#986131
- 由于 USN (Update Sequence Number)配置,rootdse 目录中 lastusn 变量的初始值显示为 "18446744073709551615" 而不是预期的 "-1"。这个版本为初始 lastusn 添加了特殊处理。因此,这个值会如预期设置为 "-1"。如果在 USN 索引文件中找到负值,它将重置为初始值。
- BZ#986424
- 在这个版本中,修正了几个小代码错误,以防止出现内存泄漏和稳定性问题。
- BZ#986857
- 如果日志记录功能没有设置为"critical",则在磁盘空间检查过程中会错误地跳过日志目录的挂载点。修正了对配置设置的处理,日志目录不再被跳过。
- BZ#987703
- 在以前的版本中,当将 set_krb5_creds ()函数用于复制传输或绑定时,会泄漏内存泄漏。底层源代码已被修改,内存泄漏不再发生。
- BZ#988562
- 当多个客户端连接到目录服务器(DS)时,每个客户端都添加和删除用户,则服务器死锁可能会出现。在这个版本中,引入了一个新的补丁来防止死锁。
- BZ#989692
- 评估服务器端排序请求时,仅从请求中的第一个属性注册"排序类型"参数,即使具有不同的"sort type"值,也会忽略以下属性:因此,排序操作被错误地执行。在这个版本中,目录服务器已被修改,以便对请求中的每个排序属性的服务器端排序会重置"排序类型"。现在,排序会被正确处理。
- BZ#1002260
- 由于模式错误,Directory 服务器(DS)无法在系统升级后启动。这个程序错误已被解决,在上述情况下 DS 现在可以正常工作。
- BZ#1006846
- 如果在初始化子后端前配置了复制,则不会使用真实子后缀条目更新临时子后缀。因此,服务器搜索无法返回子后缀下的条目。在这个版本中,当添加真实的子后缀时,entryrdn 索引中的临时条目 ID 替换为实际条目 ID。因此,搜索可以成功返回子后缀条目。
- BZ#1007452
- 对于 nsDS5ReplicaName 变量的特定值,复制可能会被破坏。在这个版本中,所有副本名称都会被正确处理。
- BZ#1008013
- 在某些情况下,Directory 服务器在使用 TLS 或 SSL 协议处理多个传出和传入的操作时时变得无响应。底层源代码已被修改,在这种情况下,服务器不再挂起。
- BZ#1013735
- 在以前的版本中,如果目录服务器(DS)与不支持 CLEANALLRUV 任务的副本一起工作,则运行此任务会导致 DS 无响应。在这个版本中,DS 被修改为跳过不支持 CLEANALLRUV 的副本,从而解决了这个问题。
- BZ#1016038
- 在以前的版本中,当检查 Active Directory (AD)条目时,只检查目标的直接子级。因此,处于更深入的 AD 条目不会与 Directory 服务器同步。这个程序错误已被解决,目标的子目录现在在和所有级别同步。
8.155. pki-core
8.155.1. RHBA-2013:1682 - pki-core 程序错误修复更新
程序错误修复
- BZ#887305
- 在以前的版本中,在安装 pki-ca 软件包后,/var/run/pki/ca/ 目录被分配一个不正确的 SElinux 上下文。在这个版本中,restorecon 命令在安装后的 /var/run/pki/ca/ 上应用。因此,这个目录现在使用正确的 SElinux 上下文进行标记。
- BZ#895702, BZ#999055
- 在此次更新之前,当 pki-ca 守护进程在 Red Hat Enterprise Linux 6.4 Identity Management 服务器上重启时,会报告 AVC 拒绝。在这个版本中,pki-ca 已被修改,在上述场景中不再报告 AVC 拒绝。
- BZ#998715
- pki-selinux 软件包为特定默认路径设置文件上下文,以便在创建 Red Hat Certificate System 实例时不需要设置上下文。在此次更新之前,当安装 pki-selinux 时,如果这些路径不存在,则会显示不必要的警告信息。现在,这些信息会被禁止。
8.156. policycoreutils
程序错误修复
- BZ#860506
- 在以前的版本中,一些 semanage 命令行选项无法按预期工作。在这个版本中,这些选项已被修正,现在可以进行。
- BZ#868218
- 有了这个更新,semanage man page 已更新,以便与 semanage 帮助页面中包含的信息保持一致。
- BZ#886059
- 由于 policycoreutils 软件包中的一个错误,安装 ipa-server-selinux 软件包会失败。这个 bug 已被修复,ipa-server-selinux 现在可以在不复杂的情况下安装。
- BZ#913175
- 在此次更新之前,Sandbox 工具不接受在 /etc/sysconfig/sandbox 文件中指定的符号链接。因此,执行 "sandbox -M" 命令会失败,并显示 "No such file or directory" 信息。底层源代码已被修改,现在可以在不复杂的情况下在 /etc/sysconfig/sandbox 中配置符号链接。
- BZ#916727
- 在以前的版本中,fixfiles 脚本无法识别描述 /sbin/ip6?tables-multi* 文件的正则表达式的更改。因此,使用 yum update 命令更新系统后,这些文件会被错误地标记。在这个版本中,fixfiles 已被修正,可以接受正则表达式的更改。
- BZ#918460
- 在此次更新之前,在执行 "semanage boolean -m" 命令后,会返回回溯。这个程序错误已被解决,上面提到的场景中不再显示回溯信息。
- BZ#928320, BZ#947504
- 在以前的版本中,semanage 工具不允许在目录和文件上设置"none"上下文。因此,在尝试这样做时会显示以下信息:/usr/sbin/semanage: Type none 无效,必须是文件或设备类型这个程序错误已被解决,现在可以在不复杂的情况下设置"none"上下文。
- BZ#967728
- 在此次更新之前,audit2allow 命令的"-o"选项覆盖输出文件的内容,而不是仅附加新内容。这个程序错误已被解决,"audit2allow -o"现在可以正常工作。
- BZ#984484
- 尝试启用不存在的 SELinux 布尔值后,会生成一个简短的错误消息。在这个版本中,将此消息修改为更加明确。
- BZ#998974
- 在尝试永久更改不存在的布尔值后,会生成不正确的错误消息。这个消息已被修改,以提供关于问题原因的正确信息。
功能增强
- BZ#916734
- 在这个版本中,可以在运行 restorecon 工具时排除所选文件,这可以显著减少执行时间。
8.157. powertop
错误修复
- BZ#998021
- 每个进程打开文件描述符的默认软限制为 1024,每个进程文件描述符的默认硬限制为 4096。通过使用性能计数器子系统,PowerTOP 工具可能会超过复杂系统的限值。因此,会显示有关缺少对 perf 的内核支持的错误消息。在这个版本中,添加了一个修复程序,它会临时将当前进程的软和硬文件描述符限制增加到内核限制。如果内核限制仍不足,PowerTOP 会显示一条错误消息,表示应手动增加文件描述符限制。
8.158. pykickstart
程序错误修复
- BZ#886010
- 当将 autopart 命令与一个 kickstart 文件中其他 kickstart 分区命令合并时,安装会意外地进行错误。底层源代码已被修改,如果用户获得通知,如果 kickstart 文件包含无效分区,则会中止安装并显示 parse 错误。
- BZ#924579
- 当 kickstart 文件指定了名称相同的两个逻辑卷时,安装会失败并显示以下错误消息:AttributeError: 'LogVolData' 对象没有属性 'device'在这个版本中,重复的名称会被正确检测到,并显示适当的错误消息。
- BZ#966183
- 在运行包含 "network" 命令的 kickstart 文件时,指定了 "--ipv6" 选项,安装可能会意外终止,并显示以下信息:TypeError: 不是在字符串格式化过程中转换的所有参数这个版本提供了一个补丁来修复这个程序错误,在上述场景中可以按预期工作。
功能增强
- BZ#978252
- 此功能增强添加了在 kickstart 文件中为 "network" 命令指定 "--ipv6gateway" 选项的功能。因此,可以使用 "network" 命令为网络设备配置指定 IPv4 和 IPv6 默认网关。
8.159. pyparted
错误修复
- BZ#896024
- 由于底层源代码中的一个错误,尝试运行 parted.version ()函数会导致返回系统错误。这个程序错误已被解决,parted.version ()现在可以按预期执行。
8.160. python
安全修复
- CVE-2013-4238
- 在 Python SSL 模块处理包含 NULL 字节的 X.509 证书字段的方式中发现了一个安全漏洞。攻击者可能会利用此漏洞对欺骗 SSL 服务器进行中间人攻击。请注意,要利用此问题,攻击者需要获得由客户端信任的授权签署的精心设计的证书。
程序错误修复
- BZ#521898
- 在以前的版本中,python-tools 子软件包中的一些 Python 可执行文件以 #!/usr/bin/env python shebang 开始。这使得安装和使用其它 Python 版本变得更加困难。在这个版本中,这些可执行文件的第一行已被明确引用 Python 系统版本的 #!/usr/bin/python 替代。现在,可以在不复杂的情况下使用用户首选 Python 版本
- BZ#841937
- 在此次更新之前,
sqlite3.Cursor.lastrowid
对象不接受在 Turkish 区域中指定的插入语句。因此,当使用图形安装程序安装 Red Hat Enterprise Linux 6 时,选择 "Turkish" 作为安装语言会导致安装失败。在这个版本中,sqlite3.Cursor.lastrowid
已被修复,安装不会在 Turkish 区域下失败。 - BZ#845802
- 在以前的版本中,
SysLogHandler
类将 UTF-8 字节顺序标记(BOM)插入到日志消息中。因此,这些消息被评估为具有紧急优先级级别,并记录到所有用户控制台。在这个版本中,SysLogHandler
不再将 BOM 附加到日志消息,现在消息被分配了正确的优先级级别。 - BZ#893034
- 在以前的版本中,当系统上不存在
/dev/urandom
文件时,random
.py/dev/urandom
,random.py
也会按预期工作。 - BZ#919163
WatchedFileHandler
类对竞争条件敏感,这会导致出现异常。因此,轮转一个新的日志文件会失败。WatchedFileHandler
已被修复,日志轮转现在可以正常工作。- BZ#928390
- 在此次更新之前,Python 没有从某些安全套接字层(SSL)证书读取备用主题名称。因此,检查证书主机名时可能会出现假的身份验证失败。在这个版本中解决了处理 Alternative Subject Names 和 false 验证错误的问题。
- BZ#948025
- 在以前的版本中,
SocketServer
模块无法正确处理系统调用中断。这会导致某些 HTTP 服务器意外终止。在这个版本中,SocketServer
已修改为处理中断,服务器在上述场景中不会再崩溃。 - BZ#958868
- 将
timeout=None
参数传递给subprocess.Popen()
功能会导致Eventlet
库的上游版本意外终止。这个程序错误已被解决,在上述情况下Eventlet
不再会失败。 - BZ#960168
- 当进入带有启用
SSLSocket
类的服务器的连接无法传递自动do_handshake()
功能时,连接会保持打开状态。这个问题只会影响 Python 2 版本。底层源代码已被修复,失败的传入连接现在可以正确关闭。 - BZ#962779
- 当有多个
libexpat.so
库可用时,Python 无法选择正确的库。在这个版本中,向_elementtree.so
添加了一个明确的 RPATH,从而解决了这个问题。 - BZ#978129
- 在以前的版本中,
urlparse
模块无法正确为任意 XML 方案解析 URL 的查询和片段部分。在这个版本中,urlparse
已被修复,在这种情况下可以保证正确的解析。
功能增强
- BZ#929258
- 在这个版本中,将
collections.OrderedDict
数据结构添加到 集合 软件包中。collections.OrderedDict
在应用程序代码中用于确保当 json.dumps 例程转换为字符串时,会以相同的顺序发出内存中 python 字典。
8.161. python-beaker
错误修复
- BZ#983292
- 在以前的版本中,Beaker 使用 MD5 算法来生成唯一的十六进制编码的会话标识符。但是,默认情况下,这个算法在 FIPS 模式下由 Python 运行时支持。因此,使用 Beaker 的 Web 应用程序在特定环境中创建新会话。有了这个更新,MD5 已被 SHA1 算法替代,后续的十六进制编码使用 Base64 编码方案。因此,Beaker 在 FIPS 环境中可以正常工作。
8.162. python-ethtool
程序错误修复
8.163. python-urlgrabber
错误修复
- BZ#807030
- 在以前的版本中,当用户使用 reposync 命令将远程 Yum 存储库同步到本地目录时,源代码中的缺陷会导致回溯错误,当 utime ()系统调用出错时。在这个版本中修正了源代码中的错误,上面描述的场景中不再会出现回溯错误。
8.164. python-urwid
8.165. python-virtinst
程序错误修复
- BZ#861972
- 如果有重复的 USB 设备连接到主机设备,请将 vendorId 或 productId 值传递给 "--host-device" 选项会导致 virt-install 工具使用以下信息终止:需要 ERROR 'vendor' 和 'product' 或 'bus' 和 'device'。这个消息没有告知重复设备,这会导致错误。该消息已被修改为:ERROR 15e1:2007 对应于多个节点设备现在,用户会收到有关安装失败的真正原因的信息。
- BZ#916875
- 在以前的版本中,当 "--disk" 参数包含 hash ("cephfs")字符时,会显示不正确的错误信息。这个程序错误已被解决,错误消息现在可以正确通知不支持的字符。
- BZ#921480
- 在此次更新之前,virt-install 工具默认创建稀疏逻辑卷。但是,稀疏逻辑卷需要进一步配置,因此只应该由高级用户或管理应用程序创建。在这个版本中,非稀疏模式是默认值且唯一可用的设置。
- BZ#946972
- 在个别情况下,virt-clone 工具在克隆操作过程中显示不正确的速度统计信息。这个程序错误已被解决,当 virt-clone 处于操作时会显示正确的速度值。
- BZ#954262
- 在某些情况下,当系统中有 ".treeinfo" 文件时,virt-install 工具会尝试从该文件中获取镜像信息。如果 ".treeinfo" 没有包含此信息,virt-install 会意外终止。这个程序错误已被解决,virt-install 现在会在 ".treeinfo" 不完整时使用默认值。
- BZ#980334
- 在以前的版本中,尝试从 "qxl" 更改视频设备的模型类型,从而导致 virt-manager 工具返回以下出错信息:更改虚拟机配置时出错: XML error: ram 属性只支持 qxl 类型底层源代码已被修改,现在可以在不复杂的情况下更改视频设备的模型类型。
功能增强
- BZ#958496
- 这个更新提供了 virt-manager 工具支持的安装环境的修订列表。
8.166. python-weberror
错误修复
- BZ#746118
- 在以前的版本中,当为处理的错误分配标识符时,WebError 中间件使用 MD5 算法。但是,默认情况下,这个算法在 FIPS 模式下由 Python 运行时支持。因此,当 web 应用程序在 FIPS 模式中引发异常,且异常由 WebError 处理时,会提供不完整的错误诊断。在这个版本中,基于 MD5 的错误标识不会被自动生成,从而避免在错误标识符没有进一步处理时出现问题。
8.167. qemu-kvm
- CVE-2013-4344
- 当为单个 SCSI 目标指定 256 个 LUN 时,在 QEMU 处理 SCSI "REPORT LUNS" 命令的方式中发现了一个缓冲区溢出缺陷。特权的客户机用户可以使用此缺陷来破坏主机上的 QEMU 进程内存,这可能会导致具有 QEMU 进程特权的主机上的任意代码执行。
程序错误修复
- BZ#974617
- 在以前的版本中,当使用 qcow2 文件格式重启磁盘镜像的分配请求时,计数器变量不会被正确重置。因此,在某些情况下,这些磁盘镜像会被破坏。在这个版本中,对可用集群的数量以 qcow2 格式计算的方式改变,在上述场景中 qcow2 磁盘不再损坏。
- BZ#927336
- 由于计算中的整数溢出,在使用
Virtio Balloon Driver
且超过 4 GB 内存时,qemu-kvm
工具在 QMP (QEMU Machine Protocol)上报告不正确的内存大小。现在,提供了一个补丁来修复这个程序错误,qemu-kvm
现在会报告正确的当前 RAM 数量。 - BZ#917860
- 在以前的版本中,Microsoft Windows XP 和 Microsoft Windows 7 客户机的智能卡模拟会失败,因为 Answer To Reset (ATR)文件长度与智能卡输入/输出设备错误不一致。在这个版本中,会创建一个具有适当历史字节的 ATR 文件长度,并在需要时禁用 USB 信号。现在,智能卡模拟可以正常工作,上面提到的场景中不再会出现故障。
- BZ#916020
- 在以前的版本中,
qemu-kvm
工具没有启用IOeventFD
功能,这会导致对virtio-blk
设备的 IOeventFD 支持被静默禁用。这个版本启用了IOeventFD
功能,对virtio-blk
设备的IOeventFD
支持可以正常工作。
功能增强
- BZ#670162
- 实施了使用 qemu-img rebase 命令删除后备文件的新功能。现在,运行 qemu-img rebase 命令时不会发生数据丢失。
- BZ#963420
- Red Hat Enterprise Linux 6.5 对 VHDX (
Hyper-V
虚拟硬盘)提供只读支持,如 MicrosoftHyper-V
创建的。 - BZ#960685
- Red Hat Enterprise Linux 6.5 对 VMDK (虚拟机磁盘)的只读支持提供了很多改进,包括其子格式,包括由许多 VMware 虚拟化解决方案创建的。
- BZ#848070
- 更新了
QEMU
中GlusterFS
的支持,允许使用libgfapi
库的原生访问GlusterFS
卷,而不是通过本地挂载的FUSE
文件系统进行本地访问。这种原生方法提供了显著的性能改进。 - BZ#884253
- 从 Microsoft Windows 客户机内支持卷控制。用户现在可以使用 AC'97 codec 完全控制 Microsoft Windows XP 客户机上的卷级别。
- BZ#914802
- 在这个版本中,实现了对转储虚拟磁盘元数据的支持。主机上运行的第三方应用程序现在可以读取客户机镜像内容,而无需了解 QCOW2 镜像格式的详细信息。这可以与 Linux 设备映射器一起使用,以作为 Linux 块设备访问 QCOW2 镜像。
- BZ#911569
- 与 Windows VSS (Visual SourceSafe)版本类似,现在可以使用附加到客户机上运行的
QEMU
客户机代理的脚本来创建应用一致性快照。这些脚本可以通知应用程序在冻结或波动操作期间将其数据刷新到磁盘,从而允许执行一致的快照。
8.167.2. RHBA-2013:1750 - qemu-kvm 程序错误修复更新
程序错误修复
- BZ#1025596
- 最近对块层的更改会导致磁盘 I/O 性能下降,因为在内部计算和缓存块长度的方式。这个版本改进了计算此类长度的逻辑,并将性能恢复到预期级别。
- BZ#1029327
- 由于回归问题,"qemu-img info"命令用太多时间响应 "cluster_size=512,preallocation=metadata" 选项。这个程序错误已被解决,"qemu-img info"现在在一秒内做出响应。
- BZ#1029327
- 在使用非常小的非标准集群大小(如 512 字节)创建的镜像中,如果镜像创建后立即运行,"qemu-img info"命令可能需要很长时间才能响应。这个程序错误已被解决,"qemu-img info"现在可以正常工作。
- BZ#1029329
- 当使用 "--copy-storage-all" 选项进行实时迁移时,virsh 用户界面会失败,并显示以下错误消息:"error: Unable to read from monitor: Connection reset by peer"现在,由回归导致的这个程序错误已被解决,实时迁移现在可以成功完成。
- BZ#1028252
- 在以前的版本中,qemu (例如,"qemu-img info"命令)无法打开 VMWare ESX 镜像文件。现在,提供了一个修复这个 bug 的补丁,xx 个镜像可以被正确处理。
8.168. ql2400-firmware
8.169. ql2500-firmware
8.170. quota
8.170.1. RHBA-2013:1548 - 配额程序错误修复和增强更新
错误修复
- BZ#717948
- 当 SELinux 拒绝访问 quotacheck 工具时,"quotacheck -c"命令不会报告任何错误,且退出代码为 0。在这个版本中,quotacheck 内部被修改为使用适当的非零退出代码传播任何错误,并在无法使用旧配额文件时打印准确的警告。因此,quotacheck 现在会在文件系统上初始化配额时正确报告错误。
功能增强
8.171. rdesktop
错误修复
- BZ#902912
- 由于 rdesktop 代码中存在一个错误,在使用 rdesktop 时,shell 中会持续显示错误消息。这个程序错误已被解决,在 rdesktop 会话中不再生成信息。
功能增强
- BZ#701246
- 在这个版本中,在 rdesktop 软件包中添加了对集群 Windows Server 2008 R2 机器上的终端服务的支持。
8.172. RDMA 堆栈
安全修复
- CVE-2013-2561
- 在 ibutils 处理临时文件的方式中发现了一个安全漏洞。本地攻击者可以利用这个漏洞,通过符号链接攻击使任意文件被替换为 root 用户。
- CVE-2012-4516
- 发现 librdmacm 使用静态端口连接到 ib_acm 服务。本地攻击者可以在该端口上运行一个特制的 ib_acm 服务,可以利用此漏洞为 librmdacm 应用程序提供不正确的地址解析信息。
软件包名称 | 上游版本 |
---|---|
libibverbs | 1.1.7 |
libmlx4 | 1.0.5 |
librdmacm | 1.0.17 |
mstflint | 3.0 |
perftest | 2.0 |
qperf | 0.4.9 |
rdma | 3.10 |
- 消息传递接口(MPI)测试软件包中的多个错误已被解决,允许更多 mpitest 应用程序在底层 MPI 实现上传递。
- libmlx4 软件包现在包含 dracut 模块文件,以确保 initramfs dracut 构建中包含任何对 mlx4 端口类型的自定义配置。
- perftest 和 qperf 软件包中的多个测试程序现在可以通过 RoCE 接口正常工作,或者在指定 rdmacm 队列对时正常工作。
- mstflint 软件包更新至最新的上游版本,现在可以在新发布的 Mellanox Connect-IB 硬件上刻录固件。
- openmpi 和 infinipath-psm 软件包之间的兼容性问题已使用这些软件包的新构建解决。
8.173. readahead
8.173.1. RHBA-2013:1739 - readahead 程序错误修复更新
错误修复
- BZ#1017072
- readahead 软件包的 readahead-collect 工具会延迟系统引导时 auditd 守护进程的启动过程。这可能会导致审计、kdump 和运行级别切换出现各种问题。为加快引导过程,现在默认关闭 readhead。如果需要,可以通过编辑 /etc/sysconfig/readahead 文件来打开 readhead。
8.174. redhat-indexhtml
功能增强
8.175. redhat-release
8.176. Red Hat Enterprise Linux 6.5 发行注记
8.177. resource-agents
程序错误修复
- BZ#784933
- 在以前的版本中,当使用 exportfs 工具重新定位导出的共享时,
/var/llib/nfs/rmtab
文件的大小会被加倍。这个 bug 已被修复,/var/lib/nfs/rmtab
文件大小在上述场景中不再加倍。 - BZ#851188
- 在此次更新之前,
fs-lib.sh
代理在搜索/proc/mounts
文件中的设备时无法识别结尾斜杠("/")字符。因此,NFSv4 挂载不会被监控。在这个版本中,fs-lib.sh
已被修改来跟踪斜杠字符。因此,NFSv4 挂载会如预期管理并监控。 - BZ#853220
- 由于
oracledb.sh
脚本中的一个错误,当同一主目录中有多个 ORACLE 实例运行时,该脚本会生成不必要的延迟。这个 bug 已被修复,当多个 ORACLE 实例存在于主目录中时,oracledb.sh
现在可以在没有延迟的情况下工作。 - BZ#871659
- 要完全关闭,
postgres
代理需要接收 SIGINT 信号。在以前的版本中,这个信号没有发送,postgres
会执行硬关闭,而不是安全退出。这个行为已被修改,在关闭时将 SIGINT 发送到postgres
以尝试安全退出,并在一段时间后发送 SIGQUIT 信号(如果代理仍然处于活动状态)。因此,postgres
在 stop 操作过程中执行安全关闭。 - BZ#884326
- 在以前的版本中,如果设备在由 HA-LVM 工具控制的非冗余(不是镜像或 RAID)逻辑卷(LV)中失败,则整个 LV 可以从卷组中自动删除。这个程序错误已被解决,现在如果一个非冗余逻辑卷出现设备故障,HA-LVM 无法启动该服务,而不是强制从卷组中删除失败的 LV。
- BZ#895075
- 在此次更新之前,
ip.sh
代理没有配置包含大写字母的 IPv6 地址。因此,具有此类地址的资源会失败。在这个版本中,ip.sh
已修改为对 IPv6 地址敏感。因此,带有大写字母的 IPv6 地址现在由ip.sh
正确配置。 - BZ#908457
- 在以前的版本中,当启用
force_unmount
选项时,基于fs-lib.sh
脚本(如ip.sh
)的代理会忽略self_fence
选项。因此,配置的self_fence
选项不会被启用。这个 bug 已被修复,无论force_unmount
是什么,都会接受self_fence
。 - BZ#948730
- 在这个版本中,mount 工具生成的日志消息的优先级级别已从以前的
错误
改为更合适的调试级别
。 - BZ#959520
- 由于
/var/lib/nfs/statd/sm/
目录不正确的 SELinux 上下文,rpc.statd
守护进程无法启动。只有在集群包含 NFS 挂载时会出现此问题。在这个版本中,修改文件如何复制到/var/lib/nfs/statd/sm/
目录,以便 SELinux 上下文从目标目录中继承。因此,rpc.statd
现在可以在不复杂的情况下启动。 - BZ#974941
- 当
autofs
映射用于网络存储时,集群文件系统的代理("fs"),如 netfs.sh、fs.sh 或 clusterfs.sh 需要use_findmnt
选项设为'false'
。在以前的版本中,当错误地设置use_findmnt
且autofs
映射不可用时,带有 "fs" 资源的 rgmanager 服务会变得无响应,直到网络恢复为止。底层源代码已被修改,rgmanager 服务在上述场景中不再挂起。 - BZ#976443
- 在此次更新之前,
lvm.sh
代理无法准确检测到集群节点所代表的标签。因此,当另一个节点重新加入集群时,集群节点中的活跃逻辑卷会失败。在这个版本中,lvm.sh
可以正确地检测到标签是否代表一个集群节点。因此,当节点重新加入集群时,卷组不会在其它节点上失败。 - BZ#981717
- 当将
tomcat-6
服务的多个实例用作集群资源时,会忽略自定义/conf/tomcat6.conf
配置文件中的TOMCAT_USER
设置。因此,每个实例始终以TOMCAT_USER
设置为root
。这个程序错误已被解决,在上述情况下,TOMCAT_USER
现在被正确应用。 - BZ#983273
- 在某些情况下,当
tomcat-6
资源的tomcat.conf
配置文件存储在不可用的共享存储资源中时,tomcat-6
上的后续停止操作会失败。这个程序错误已被解决,当tomcat.conf
不可读取时,tomcat-6
现在可以成功停止。 - BZ#998012
- 基于文件系统的资源(如
fs.sh
或clusterfs.sh
)在状态监控过程中需要使用/tmp
目录。如果在挂载文件系统后此目录已满,则 monitor 操作也会失败,即使正确挂载文件系统。在文件系统监控器中不再使用/tmp
目录,从而解决了这个问题。 - BZ#1009772
- 如果在两个节点上同时启动 rgmanager,则这些节点可以同时执行 lvchange --deltag 命令,并破坏 LVM 标头。在这个版本中,即使两个节点上的 rgmanager 不足,LVM 标头也不会被破坏。
- BZ#1014298
- 在以前的版本中,当 NFS 服务器不响应时,fuser 工具可能会阻止卸载 NFS 文件系统。有了这个更新,fuser 已替换为自定义逻辑,它会搜索带有打开文件描述符的进程到 NFS 挂载,从而解决了这个问题。
功能增强
- BZ#670022
- 在这个版本中,对 Oracle Database 11g 的支持被添加到
oracledb
,orainstance
, 和oralistener
资源代理中。 - BZ#711586
- 在这个版本中,在
named.sa
代理中添加了新的update-source
选项。启用此选项后,可以将notify-source
、transfer-source
和query-source
设置为服务集群 IP。 - BZ#909954
- 在这个版本中,
/usr/share/cluster/orainstance.sh
脚本的锁定文件已从/tmp/
目录移到/var/tmp/
。 - BZ#917807
- 在这个版本中,
TNS_ADMIN
变量已添加到oracledb.sh
集群脚本中。此变量是标准 Oracle 功能,用于设置监听程序配置文件的特定路径。 - BZ#919231
- 这个版本提高了启动、停止和监控文件系统资源操作的性能。文件系统资源使用 findmnt 工具来加快在有大量文件系统资源的集群上加快迁移速度。
- BZ#989284
- 在这个版本中,增加了对与 Pacemaker 集群管理器一起使用的 ocf heartbeat 资源代理的官方支持。此初始版本仅有官方支持的代理。这意味着,没有官方支持的心跳代理在此更新中没有提供。
程序错误修复
- BZ#1027410
- 在此次更新之前,netfs 代理可能会在停止操作过程中挂起,即使启用了 self_fence 选项。在这个版本中,自助隔离操作会更早地执行,这样可确保 NFS 客户端检测到如果 umount 无法成功,则 NFS 客户端会检测到服务器保留成功,并发生自我隔离。
- BZ#1027412
- 在以前的版本中,IPaddr2 代理不会发送出 unsolicited neighbor 公告来宣布链路层地址更改。因此,需要此功能的浮动 IPv6 地址无法正常工作。要解决这个问题,添加了 IPaddr2 代理所需的 send_ua 内部二进制文件来驱动 IPv6 地址。因此,浮动 IPv6 地址现在可以正常工作,并且 IPv4 地址不受此更改的影响。
8.178. rgmanager
8.178.1. RHBA-2013:1600 - rgmanager 程序错误修复更新
程序错误修复
- BZ#862075
- 在以前的版本中,如果主 rgmanager 进程终止并出现分段错误,或者手动终止,或者手动终止,它上运行的任何服务都会立即恢复到另一个节点上,而不是等待隔离,如 rgmanager 进程在以前的版本中。使用标记包含高可用性逻辑卷管理器(HA-LVM)资源的服务存在问题,因为如果发现的标签属于仍属于群集成员的节点,则启动操作会失败。在这个版本中,服务恢复会延迟,直到节点从配置中删除并隔离为止,这样就可以正确恢复 LVM 资源。
- BZ#983296
- 在以前的版本中,尝试启动 MRG 消息传递(MRG-M)代理会导致 rgmanager 意外终止,并带有分段错误。这是因为在未锁定的 mutual 排除中调用 pthread_mutex_unlock () 函数导致的微小内存损坏。在这个版本中解决了在调用 pthread_mutex_unlock ()时内存可能会损坏的情况,在上述情况下,rgmanager 不再意外终止。
8.179. rhel-guest-image
程序错误修复
- BZ#912475, BZ#952280
- 在以前的版本中,因为缺少行尾(EOL)返回,/etc/ssh/sshd_config 文件没有正确创建。因此,sshd 守护进程启动失败并显示出错信息。将序列写入 /etc/ssh/sshd_config 已被修正,在这种情况下 sshd 启动不再会失败。
- BZ#912801
- 在以前的版本中,当虚拟机(VM)关闭时,持久性 udev 规则不会从客户机镜像中删除。因此,当虚拟机再次引导时,并分配了不同的网卡介质访问控制(MAC)地址时,udev 规则会导致 Network Interface Controller (NIC)设为 eth1 而不是 eth0。这个不正确的配置会导致实例在没有网络支持的情况下引导。这个版本添加了 /etc/udev/rules.d/75-persistent-net-generator.rules 文件,VM 配置可以正常工作。
- BZ#969487
- 默认情况下,Red Hat Enterprise Linux 客户机镜像不使用 ttyS0 串行端口,因此监控串行控制台日志的工具没有捕获任何信息。在这个版本中,在引导装载程序中添加了控制台日志功能,Red Hat Enterprise Linux 客户机镜像现在在 ttyS0 串行端口和标准控制台上打印引导信息。
- BZ#983611
- 元数据访问由网络节点处理,cloud-init 服务在启动时使用元数据。在以前的版本中,cloud-init 服务没有配置 "NOZEROCONF=yes"。因此,访问子网 169.254.0.0/16 范围没有路由到网络节点,因此 cloud-init 服务无法正常工作。在这个版本中,为 /etc/sysconfig/network 文件中的云镜像添加了 "NOZEROCONF=yes"。用户应避免在这些镜像中打开 zeroconf 路由。要在系统引导时禁用 zeroconf 路由,请以 root 用户身份编辑 /etc/sysconfig/network 文件,并将 "NOZEROCONF=yes" 添加到文件末尾的新行中。
- BZ#1006883
- 在以前的版本中,/etc/fstab 文件包含不必要的条目。因此,当更新内核和 grub 安装时,文件系统挂载无法正常工作。在这个版本中,不必要的条目已被删除,文件系统挂载现在可以正常工作。
- BZ#1011013
- 在以前的版本中,ifcfg-eth0 配置文件中缺少 dhclient 配置选项。因此,如果动态主机配置协议(DHCP)失败,网络连接会丢失。在这个版本中,将 "PERSISTENT_DHCLIENT=1" 配置选项添加到 ifcfg-eth0 配置文件中。现在,如果网络接口控制器(NIC)无法协商 DHCP 地址,它会重试。
功能增强
- BZ#974554
- virtual-guest 镜像现在包含一个默认激活的"tuned"守护进程的配置集。在大多数情况下,这有助于提高客户机的性能。
8.180. rhn-client-tools
程序错误修复
- BZ#891746
- 在以前的版本中,rhn-channel 手册页错误地被称为 "--username" 选项而不是 "--user"。这个错误已被修正,RHN-channel 手册页现在可以正确地引用"--user"选项。
- BZ#912984
- 在此次更新之前,一些以英语编写的消息发生在 Red Hat Enterprise Linux 6.4 的日语安装中。未翻译的字符串已翻译,信息现在以正确的语言显示。
- BZ#983999
- 在以前的版本中,Red Hat Enterprise Linux 6 上的 sosreport 工具调用的 rhn-client-tools 代码意外终止,并会回溯。这个程序错误已被解决,sosreport 可以正确地收集有关硬件的信息。
- BZ#994531
- 在以前的版本中,具有许多 CPU 的机器可能会为其所有处理器报告大量闲置时间。因此,闲置时间值不适用于 XML-RPC 的整数限制,并在有问题的机器上运行 rhn_check 命令会导致回溯错误。这个程序错误已被解决,在有问题的场景中 rhn_check 现在可以正常工作。
- BZ#997637
- 在以前的版本中,当机器上安装了旧版本的 rhn-virtualization-host 软件包时,rhn-profile-sync 工具会意外终止。这个程序错误已通过需要新版本的 rhn-virtualization-host 来解决。
错误修复
- BZ#949648
- 如果以足够慢的网络与父项分开,则 RHN 代理无法正常工作。因此,试图下载更大的 repodata 文件和 RPM 会出现超时的情况。这个版本更改了 RHN 代理和 Red Hat Enterprise Linux RHN 客户端,以便所有通信可以模糊处理连接配置的超时值。
功能增强
- BZ#949640
- 虽然 Satellite 5.3.0 现在能够通过 API 调用获取 CPU 数量,但无法从注册的系统获取套接字数量。在这个版本中,添加了一个功能,用于通过 API 调用从 Satellite 获取受管系统中的物理 CPU 插槽数量。
8.181. rhnlib
错误修复
- BZ#949650
- 如果以足够慢的网络与父项分开,则 RHN 代理无法正常工作。因此,试图下载更大的 repodata 文件和 RPM 会出现超时的情况。这个版本更改了 RHN 代理和 Red Hat Enterprise Linux RHN 客户端,以便所有通信可以模糊处理连接配置的超时值。
8.182. ricci
8.182.1. RHBA-2013:1673 - ricci 程序错误修复和功能增强更新
程序错误修复
- BZ#853890
- 在此次更新之前,用于在不同节点间复制和同步集群配置的 ccs_sync 命令可能会在将外部配置文件推送到所选节点时意外终止。在这个版本中,ccs_syncd 已被修复,它不会在上述场景中崩溃。
- BZ#883585
- 在此次更新之前,ricci、ccs 和 ccs_sync man page 的文件权限被错误地设置为可执行文件。在这个版本中,这些 man page 的文件权限已被修正。
- BZ#893574
- 在此次更新之前,ccs 管理器没有正确配置 fence_scsi 代理。缺少的配置可能会导致恢复过程中集群的行为不正确。这个程序错误已被解决,现在 fence_scsi 配置为预期。
- BZ#918555
- 由于集群的配置解析不正确,ccs 管理器不会显示 fence_daemon 选项。在这个版本中,解析已被修复,fence_daemon 选项现在可以正确地显示。
功能增强
8.183. rp-pppoe
8.183.1. RHBA-2013:0952 - rp-pppoe 程序错误修复更新
错误修复
- BZ#841190
- 在以前的版本中,每个系统引导都会默认启动的 pppoe-server 服务,这并不适用于在管理员启用时运行 pppoe-server。在这个版本中,确保默认情况下不启动 pppoe-server,从而解决了这个问题。
8.184. rpm
8.184.1. RHBA-2013:1665 - rpm 程序错误修复更新
程序错误修复
- BZ#868332
- 在以前的版本中,brp-python-bytecompile 脚本会跳过那些包含 "/usr/lib realm/python.+/" 字符串的路径。因此,当创建一个 RPM 时,在路径中包含 Python 模块(如 "/opt/myapp/usr/lib64/python2.6/site-packages/mypackage/"),则不会创建 bytecode。reproducer 规格已更改,现在为所有路径创建 bytecode。
- BZ#904818
- 当通配符字符与 spec 文件中的 "%caps" 标签一起使用时,rpmbuild 工具会意外终止。提供的补丁通过为其应用的每个文件生成 caps 数据的副本来更正问题,因此 rpmbuild 不再会在上述场景中崩溃。
- BZ#919435
- 在以前的版本中,当安装带有大量(80k)文件的软件包时,RPM 软件包管理器会意外终止,并带有分段错误。作为临时解决方案,当软件包无法安装大量文件时,分段错误已被一个错误消息替代。
- BZ#920190
- 在以前的版本中,rpm 程序尝试无条件地处理在 spec 文件中找到的任何 "%include" 指令,这可能会导致软件包或错误消息中不需要的内容。更新的 rpm 软件包对"%include"正确隐藏了各种规格条件。
- BZ#963724
- 在这个版本中,添加了 Red Hat Enterprise Linux 5 向后兼容性选项 "%_strict_script_errors 宏"。Red Hat Enterprise Linux 6 的默认行为不会改变这个更新,我们不推荐使用这个选项的用户。
8.185. rpmlint
8.185.1. RHBA-2013:0948 - rpmlint 程序错误修复更新
程序错误修复
8.186. rsyslog
8.186.1. RHBA-2013:1716 - rsyslog 程序错误修复更新
程序错误修复
- BZ#862517
- 当配置文件读取器在 /etc/rsyslog.conf 配置文件中遇到 $InputGSSServerRun 指令时,将立即初始化 imgssapi 模块。因此,在 $InputGSSServerRun 后配置的补充选项会被忽略。要使配置生效,必须在 $InputGSSServerRun 之前放置所有 imgssapi 配置选项。在以前的版本中,当这个顺序相反时,rsyslogd 守护进程会意外终止,并显示分段错误。这个程序错误已被解决,rsyslogd 不再在上述场景中崩溃。
- BZ#886117
- 用于控制文件所有者或组的 rsyslog 指令(FileOwner、FileGroup、DirOwner、DirGroup)仅在 rsyslog 初始化过程中将名称转换为数字 ID。在以前的版本中,当 rsyslog 启动时无法使用用户数据时,没有分配给这些日志文件的 ID。在这个版本中,添加了不依赖于翻译进程的新指令(FileOwnerId, FileGroupId, DirOwnerId, DirGroupId)。因此,即使用户信息在 rsyslog 启动过程中不可用,日志文件也会分配正确的用户或组 ID。
- BZ#893197
- 由于源代码中有一个错误,如果启用了 $RepeatedMsgReduction 指令,主机名将被替换为空字符串。这个 bug 已被修复,当 $RepeatedMsgReduction 被开启时,主机名会被正确存储。
- BZ#924754
- 在此次更新之前,$FileGroup 指令不会处理大于特定大小的组。因此,当达到此大小时,rsyslogd 守护进程无法设置请求的组,root 用户则保留为文件的所有者。这个 bug 已被修复,$FileGroup 现在在上述情况下正确创建组。
- BZ#927405
- 之前版本中的一个错误补丁(更改了配置文件解析程序的实现)会导致 rsyslogd 守护进程意外终止,并显示特定配置的分段错误。在这个版本中,补丁已被删除,在默认配置中不再会崩溃。但是,$IncludeConfig 指令必须放在 /etc/rsyslog.conf 配置文件的开头,然后再其他指令。如果需要在文件中进一步使用 $IncludeConfig,建议用户使用 dummy 操作(如 "syslog.debug /dev/null"。
- BZ#951727
- 在此次更新之前,PRI 属性的数字值会附加到 pri-text 变量中。生成的 pri-text 值看起来像 "local0.info swig164>"。在这个版本中,后缀已被删除。现在,变量只包含文本工具和严重性值。
- BZ#963942
- 在以前的版本中,为保存 spool 文件大小限制的变量设置了不正确的数据类型。因此,不接受预期的大小限制,并可能会出现信息丢失。在这个版本中,上述变量的数据类型已被修正。因此,使用用户定义的大小限制来正确设置 spool 文件。
8.187. rubygems
错误修复
- BZ#559707
- 在以前的版本中,规格文件列出了不正确的许可证。规范文件已更新,以修复许可证,现在是 MIT。
功能增强
- BZ#788001
- rubygems 软件包的新版本引进了带有 RPM 宏的 rubygems-devel 子软件包,以便更轻松地与 Fedora 的兼容性。
8.188. s390utils
程序错误修复
- BZ#883456
- 在以前的版本中,
ziomon
工具没有遵循符号链接在/dev/mapper/
目录中找到多路径设备。因此,多路径设备无法找到。这个更新修复了这个程序错误,ziomon
现在遵循符号链接,且多路径设备可以如预期找到。 - BZ#887336
dbginfo.sh
实用程序从系统中收集各种用于调试目的的数据。在以前的版本中,dbginfo.sh
输出中缺少某些运行时数据,底层源代码不一致。因此,提供了不完整的信息,工具性能会降低。此外,在某些情况下,dbginfo.sh
无法检测debgfs
文件系统是否已挂载。代码已被统一并调用额外的实用程序和命令,以改进收集数据。另外,dbginfo.sh
现在从额外的配置和日志文件收集数据。- BZ#906836
ziorep_config
配置报告应该在创建多路径映射程序报告时忽略不属于多路径设备的小型计算机系统接口(SCSI)磁盘。在以前的版本中,ziorep_config
无法正确忽略 SCSI 磁盘,这些磁盘不是多路径设备的一部分。现在,当 SCSI 磁盘没有找到多路径设备时,输出中会跳过这样的磁盘。- BZ#948343
- 在以前的版本中,
sysfs_getUnitsFromPort()
功能只搜索使用scsi_generic:sg*
布局的设备的 Small Computer System Interface (SCSI)设备目录。此布局已弃用,且仅在内核配置中设置了CONFIG_SYSFS_DEPRECATED[_V2]
选项时才可用。因此,这个功能无法正常工作。在这个版本中,这个功能已被修改,来使用scsi_generic/sg*
布局搜索设备,以便它现在可以按预期工作。 - BZ#951585
- World Wide Names (WWN)和 Logic Unit Numbers (LUNs)字符串,fc_host statistics sysfs 属性被转换为不正确的整数类型,该类型太小,以容纳整个字符串可能的范围。这可能导致丢失信息。现在,底层源代码已被修改来修复这个程序错误,WWN、LUN 和 fc_host statistics sysfs 属性现在转换为正确的整数类型。
- BZ#973235
- 由于 incoherent
dbginfo.sh
源代码,sysfs 树的集合需要很长时间,日志没有编写序列化,而是被混合。此外,生成的文件中缺少一些信息,因为 实用程序没有从所有必要的配置文件中收集信息。在这个版本中,底层源代码已被改进来修复这些问题,dbginfo.sh
现在可以正常工作。 - BZ#974180
dbginfo.sh
实用程序从系统中收集各种用于调试目的的数据。在以前的版本中,从系统中收集的信息无法提供有关加密适配器的足够数据。dbginfo.sh
已被修改来收集有关适配器的更多信息。- BZ#996180
sysfs
文件系统中的 CPU 跟踪的追踪可能会阻塞dbginfo.sh
工具。因此,在这种情况下,工具会变得无响应。这个程序错误已被解决,trace 管道不再阻止dbginfo.sh
。因此,在上述场景中,工具不再挂起。- BZ#997359
zgetdump
工具没有为 CPU ELF 备注分配足够内存。因此,在有多个 CPU 的系统上,会返回以下错误:zgetdump: Internal Error: hdr_size=28512 alloc_size=26624
在这个版本中,工具已被修改为为 ELF 备注分配足够的内存,且不再返回错误。- BZ#997360
- 在以前的版本中,即使的地址被错误地加载。因此,当指定 Direct Access Storage Device (DASD)多卷转储的-
force
选项,并在之后修改转储分区时,转储会失败并显示错误。在这个版本中,载入了正确的地址,选项可以正常工作。
功能增强
- BZ#929261
- 此增强提供了 Fuzzy live dump 功能,它是一个可提取内核当前内存状态的工具。要做到这一点,Fuzzy live 转储提取 ELF 内核转储并使用 makedumpfile 命令过滤它。此功能允许用户在不关闭系统的情况下提供问题分析。注意记录的内存可能会在记录过程中更改,以便在所有情况下结果可能不一致。
- BZ#929263
- 这个增强引入了一个新的 Direct Access Storage Device (DASD)接口,它会在离线前将所有未处理的数据写入 DASD 设备。用户现在可以使用
安全离线
选项来确保在设置设备离线前完成所有未完成的写入请求。 - BZ#967014
- 对物理频道 ID (PCHID)映射的支持已添加到 s390utils 软件包中,允许用户确定与逻辑频道路径标识符(CHPID)关联的 PCHID。将 CHPID 映射到 PCHID 的功能对于维护目的和错误确定过程非常重要。另外,现在可以启用依赖于 PCHID 信息的高级健康检查。
8.189. samba
安全修复
- CVE-2013-0213
- 发现 Samba Web 管理工具(SWAT)没有防止在网页框架中打开。远程攻击者可能会使用此缺陷对 SWAT 用户或具有活跃 SWAT 会话的用户进行攻击。
- CVE-2013-0214
- 在 SWAT 中实施的 Cross-Site Request Forgery (CSRF)保护机制中发现了一个安全漏洞。熟悉 victim 的密码的攻击者可能会利用此漏洞绕过 CSRF 保护,并对 victim SWAT 用户执行 CSRF 攻击。
- CVE-2013-4124
- 在 Samba 处理客户端提供的扩展属性(EA)列表的方式中发现了一个整数溢出缺陷。恶意客户端可能会发送专门编写的 EA 列表,该列表触发了溢出,从而导致服务器使用过多的内存进行循环和重新处理列表。注意此问题不会影响 Samba 服务器的默认配置。
程序错误修复
- BZ#948071, BZ#953985
- 尝试使用基于 TCP/IP 协议的连接从可信域检索组信息会失败,因为需要用户帐户凭证以通过 TCP/IP 建立安全连接。因此,到命名 pipe 连接的回退无法正常工作,用户无法登录到可信域。在这个版本中,回退到命名的 pipe 连接已被修复,用户现在可以按预期登录到可信域。
- BZ#951175
- 在以前的版本中,当
Winbind
服务(winbindd
)负载过重时,验证大量 Active Directory (AD)用户时,可能会使用 100% 的 CPU 并停止用户身份验证。这个版本提供了一个补丁来显著改进连接处理,winbindd
不再在上述场景中停止用户身份验证。 - BZ#952268
- Samba 服务包含用户名映射优化,它存储了一个不成功映射,因此不需要每次遍历整个映射文件。由于优化中存在错误,用户名映射只运行一次,然后被成功映射覆盖。在这个版本中,提供了一个补丁来修复这个程序错误,在上述场景中不再覆盖成功的用户名映射。
- BZ#953025
- 在以前的版本中,处于 "security = share" 模式的客户机用户没有正确的令牌,允许对可写客户机共享进行写操作。因此,此类用户无法创建或写入共享中的任何文件。在这个版本中,提供了一个补丁来修复这个程序错误,客户机用户可以按预期写入或创建任何文件。注意"security = share" 模式已弃用,用户应迁移到 "security = user" 模式。
- BZ#955683
- net ads keytab add 命令总是将服务主体名称(SPN)中的字符转换为大写字符。因此,一些 Kerberos 服务无法找到其票据。在这个版本中,SPN 不再转换为大写字符,Samba 可以正常工作。
- BZ#961932
- 由于身份验证代码中转发 NTLMv2 身份验证的 bug 质询转发到主域控制器(PDC),可以从客户端发送不正确的域名。因此,用户无法登录,因为当域名在第二个 NTLMv2 身份验证挑战中哈希时,服务器无法验证哈希的有效性,并且访问被拒绝。在这个版本中,客户端为 PDC 设置了正确的域名,用户可以按预期登录。
- BZ#980382
- 试图执行 wkssvc_NetWkstaEnumUsers RPC 命令,但没有指向恢复句柄的指针,从而导致
smbd
守护进程使用分段错误终止。因此,客户端已断开连接。在这个版本中,底层源代码已被调整,在尝试解引用它前验证指针是否有效。因此,smbd
不再会在这种情况下崩溃。 - BZ#997338
- 当非 root 用户执行 smbstatus 命令时,命令输出中缺少锁定的文件。现在,底层源代码已被修改来修复这个程序错误,非 root 用户现在可以按预期显示锁定的文件。
- BZ#1003689
- Red Hat Enterprise Linux 6 可用于共享 Microsoft Windows 8 客户端使用的网络打印机的打印服务器。在以前的版本中,Red Hat Enterprise Linux 附带的 Samba 版本与 Windows 8 不兼容。因此,当 Windows 8 客户端访问打印机共享并尝试为这个打印机安装驱动程序时,会出现一个错误。这个更新应用了补丁来修复这个程序错误,现在可以在上述场景中成功安装 Windows 打印机驱动程序。
- BZ#1008574
- 在以前的版本中,当其子进程成功连接到域控制器时,主
winbind
守护进程不会被通知。因此,Network Data Representation (NDR)缓存条目永远不会过期,因此无法更新条目。在这个版本中,winbind
子进程在连接到域控制器时通知主winbind
进程。现在,缓存会如预期更新。
功能增强
- BZ#915455
smbd
守护进程预期 Samba 3.5 的旧打印数据库采用 UTF-8 格式。但是,数据库也可以采用不同的格式,例如在拉丁语中。因此,smbd
无法迁移数据库。这个版本增强了net
实用程序,用于管理 Samba 和远程 CIFS 服务器,以便正确对数据库进行编码,并将其转换为 UTF-8。因此,smbd
现在可以按预期迁移数据库。
8.190. samba4
安全修复
- CVE-2013-4124
- 在 Samba 处理客户端提供的扩展属性(EA)列表的方式中发现了一个整数溢出缺陷。恶意客户端可能会发送专门编写的 EA 列表,该列表触发了溢出,从而导致服务器使用过多的内存进行循环和重新处理列表。
程序错误修复
8.191. sanlock
错误修复
- BZ#961032
- 在以前的版本中,当某些 watchdog 模块提供了两个设备时,wdmd 守护进程并不总是选择功能设备。因此,wdmd 在有些实例中无法正常工作。现在,一个补丁已被应用于解决这个程序错误,wdmd 现在会验证两个设备的状态并正确选择可以正常工作。
功能增强
8.192. sblim-cmpi-fsvol
错误修复
- BZ#921482
- 在枚举 CIM_UnixLocalFileSystem 类实例时,某些文件系统显示为 disabled,尽管挂载了它们。当 /etc/fstab/ 目录中的条目使用符号链接或通用唯一标识符(UUID)时会出现这种情况。现在,提供了一个补丁来修复这个错误,挂载的文件系统会被正确显示。
8.193. sblim-sfcc
8.193.1. RHBA-2013:1692 - sblim-sfcc 程序错误修复更新
错误修复
- BZ#875011
- 在以前的版本中,当 KEYVALUE 对中存在属性 "EnumerateInstances" 时,sfcc 客户端无法解析 XML 文件,客户端会意外终止,且生成内核转储时意外终止。这个程序错误已被解决,sfcc 客户端现在可以使用上述属性成功解析 XML 文件。
8.194. sblim-wbemcli
程序错误修复
- BZ#745264
- 在以前的版本中,sblim-wbemcli 软件包的 spec 文件包含 tog-pegasus CIM 服务器的要求,这可能会导致问题。在安装 sblim-wbemcli 时,不再需要 spec 文件和 top-pegasus。
- BZ#868905
- 由于代码中使用 curl API 不正确,当使用 HTTPS 方案调用 wbemcli 工具时,wbemcli 会意外终止并出现分段错误。在这个版本中,curl API 被正确使用,wbemcli 不再会在上述场景中崩溃。
8.195. scl-utils
8.195.1. RHBA-2013:1554 - scl-utils 程序错误修复更新
程序错误修复
- BZ#949995
- 在以前的版本中,检测被指定为启用的集合的检测是在代码中不正确的位置进行的。因此,如果用户希望通过单个命令启用多个集合,则只启用第一个集合,而忽略其余的集合。在这个版本中,软件包会扫描所有参数,而不是只使用第一个方法的原始方法,并且现在启用了所有指定的集合。
- BZ#955669
- 在开始检查启用了什么集合时,会使用一个不正确的变量作为此信息的来源。在特定情况下,当用户在启用了 scl 的环境中运行 shell 时,并尝试启用已启用的集合,然后启用了集合两次。这可能会导致新创建的环境中出现错误,因此可能会导致应用程序在此环境中运行的问题。在这个版本中,接受正确的变量作为有关已启用的集合的信息源,集合不再多次启用。
- BZ#957185
- 在以前的版本中,python27 需要特定的字节编译器,因此 python27 集合的构建会失败,因为它使用了不正确的字节编译器。在这个版本中,python27 使用新的功能来覆盖各种 RPM 宏,因此可以编译。
- BZ#957754
- 如果 PATH 变量没有设置为 scl-utils 预期,执行 "scl enable" 命令会生成 "command not found" 错误。这是因为 scl 工具在没有绝对路径的情况下调用 scl_enabled 命令所致,并依赖用户设置的 PATH。在这个版本中,在调用 scl_enabled helper 脚本时使用绝对路径,因此它不会依赖 PATH,并且不再发生上述错误。
- BZ#964058
- 在以前的版本中,当启用集合时,检查是否会执行集合。但是,与始终启用集合的结果无关。因此,如果命令行中多次声明了单个集合,则会多次启用。对于某些破坏性的 enable scriptlets,这可能会导致意外行为。在这个版本中,只有在集合之前没有启用时,才会运行 enable scriptlet,并在一个环境中尝试多次启用集合。
8.196. scsi-target-utils
程序错误修复
- BZ#910638
- 在以前的版本中,tgtadm 工具没有检查 libaio 库是否存在,以启用异步 I/O 类型后端存储。因此,尝试使用 "tgtadm --bstype aio" 命令添加新 iSCSI 目标设备会失败,并显示 "invalid request" 错误消息。在这个版本中,添加了 libaio 作为运行时依赖项。现在,使用带有 tgtadm 工具的 "--bstype aio" 选项不再失败,并尝试添加新的逻辑单元可以正常工作。
- BZ#813636
- 在此次更新之前,当网络中发生中断时,TCP 协议的重新连接无法正常工作。因此,在这些情况下,内存泄漏会在 tgtd 守护进程中发生。这个程序错误已被解决,TCP 重新连接现在可以在上述场景中正常工作。
- BZ#865739
- 在以前的版本中,如果将 tgtd 守护进程配置为将其报告到互联网存储名称服务(iSNS)服务器,则 tgtd 守护进程无法正确报告其导出的目标。因此,运行 "iscsiadm -m discoverydb -t isns" 命令会失败。这个程序错误已被解决,在上述场景中,tgtd 现在会正确报告其导出的目标。
- BZ#922270
- 在以前的版本中,无法向 tgtd 守护进程提供命令行参数。在这个版本中,可以设置包含参数的 TGTD_OPTIONS 变量,并在 /etc/sysconfig/tgtd 文件中使用它。
8.197. seabios
8.197.1. RHBA-2013:1655 - seabios 程序错误修复和安全更新
程序错误修复
- BZ#846519
- 由于高级配置和电源接口(ACPI)描述表中存在一个错误,在某些 Windows 客户端上可能会发生停止错误(称为 Blue Screen of Death 或 BSoD)。在大量 S3 和 S4 电源状态转换过程中,使用 virtio-win small 计算机系统接口(SCSI)驱动程序的客户机中会发现这个问题,例如在运行 CrystalDiskMark 基准时。一个补丁已被用来修复这个程序错误,在上述场景中不会再发生停止错误。
- BZ#846912
- 之前包含了一个不正确的定义,多个 ACPI 描述表(MADT)。因此,在切换到 S3 或 S4 电源状态后,SCSI 驱动程序无法禁用,并且始终附加到 Global System Interrupt (GSI)数字 9。MADT 定义不正确,现在在这种情况下可以禁用并启用 SCSI 驱动程序。
- BZ#888633
- SeaBIOS 工具之前允许在不找到可引导设备时从未取消选择的设备引导。这个问题已通过添加对 HALT 指令的支持来解决,这可防止 SeaBIOS 在没有可引导设备可用时进行默认引导尝试。
功能增强
- BZ#876250
- 在这个版本中,SMBIOS GUID 号(与系统的 UUID 相同)现在显示在 BIOS Power-on 自测试(POST)屏幕上。
- BZ#963312
- 这个版本修改了 virsh 管理用户界面,以便 "virsh dump" 命令现在支持自动内核转储。使用适当的 kdump 机制设置,vmcore 文件会被自动捕获,后续的操作会自动执行。
8.198. selinux-policy
程序错误修复
- BZ#872542
- 当 SELinux 处于 enforcing 模式,并且
AWStats
工具配置为清除httpd
日志文件时,会因为缺少此设置的 SELinux 策略规则而生成 AVC 信息。要修复此程序错误,添加了awstats_purge_apache_log_files
布尔值。启用后,布尔值允许AWStats
清除日志文件。因此,AVC 信息不再返回。 - BZ#878148
- 由于缺少 SELinux 策略规则,
httpd
守护进程没有搜索/var/lib/cobbler/webui_sessions/
目录的权限。因此,用户无法登录到 Cobbler Web 用户界面(UI)。有了这个更新,SELinux 策略已被更新,用户现在可以按预期使用 Cobbler Web UI。 - BZ#890646, BZ#890647, BZ#892024
- 当 SELinux 处于 enforcing 模式时,与
postfix
服务相关的问题会出现:在这个版本中,在 SELinux 策略中添加了新的 SELinux 策略规则来修复这些程序错误。因此,在上述场景中postfix
服务无法连接到 MySQL 数据库。sysadm_u
SELinux 用户无法正确执行 postqueue -p 命令。postfix
守护进程无法列出/tmp/
目录的内容。- 当网关上启用了 Sender Policy Framework (SPF)验证时,
posfix-master
二进制文件无法执行postfix-policyd-spf-perl
Postfix 服务器。
postfix
现在可以正常工作。 - BZ#903371
- 在以前的版本中,缺少
/usr/local/bin/x11vnc
文件的正确安全上下文。因此,处于 enforcing 模式的 SELinux 会阻止 GNOME 显示管理器(GDM)和 X.Org 实现 X Window 系统执行x11vnc
服务器工具。文件的xserver_exec_t
安全上下文已添加到 SELinux 策略中,GDM 和 X.Org 现在可以在上述场景中正常工作。 - BZ#906346
- 由于缺少 SELinux 策略规则,在为 sar 命令生成数据时,
sysstat
工具无法写入设备标签。有了这个更新,SELinux 策略已被更新,允许sysstat
正常工作。 - BZ#906773
- 在以前的版本中,缺少
/bin/yum-builddep
文件的正确安全上下文。因此,使用 yum-builddep 命令安装 sendmail 软件包后,处于 enforcing 模式的 SELinux 会返回错误。安全上下文已更新至rpm_exec_t
,使用 yum-builddep 的安装现在可以按预期进行。 - BZ#908095
- 由于 SELinux 策略规则不正确,尝试使用
Munin
实用程序的df_inode
插件会导致 AVC 消息返回。策略规则已被更新,插件现在可以按预期工作。 - BZ#909857, BZ#983601, BZ#1003571, BZ#1021566
- 当 SELinux 处于 enforcing 模式时,因为 SELinux 策略规则不足而导致与
tgtd
守护进程相关的问题:添加了适当的 SELinux 策略规则来修复- 当
tgtd
守护进程与iSNSd
守护进程在服务器上运行时,tgtd 守护进程无法连接到 TCP 端口 3205。因此,tgtd
无法发现互联网存储名称服务(iSNS)目标。 - 因为缺少设备的 SELinux 标签,tgt
d
守护进程无法访问/dev/infiniband/uverbs0
设备。 SYS_RAWIO
、SYS_ADMIN
和IPC_LOCK
功能缺失。tgtd
守护进程无法访问/dev/sg0
设备。
这些 bug
,在上述场景中现在可以按预期工作。 - BZ#912295
- 在以前的版本中,当在系统中添加多个设备时,
udev
规则会为每个新设备重启ktune
服务。这可能会导致在短时间内进行多次重启。多个重启可能会在内核中触发竞争条件,这目前无法修复。tuned
守护进程代码已被修改,不会每 10 秒触发多个重启,从而防止竞争条件发生。 - BZ#913673
- 当
cgrulesengd
守护进程尝试使用inotifyfs
脚本监控文件系统更改时,SELinux 会拒绝守护进程因为 SELinux 策略不足而无法访问脚本。在这个版本中,添加了一个新的 SELinux 策略规则来解决这个问题,cgrulesengd
现在可以按预期使用inotifyfs
。 - BZ#915729, BZ#966203, BZ#984903
- 当 SELinux 处于 enforcing 模式时,因为 SELinux 策略规则不足而无法与
system-config-kdump
工具相关的问题:添加了适当的 SELinux 策略规则来修复这些 bug 和- 在
kdumpgui_t
SELinux 域中运行的kexec
功能无法访问kcore
文件。 system-config-kdump
无法写入/boot/efi/EFI/redhat/grub.cfg
文件。system-config-kdump
无法编写zipl
信息。
system-config-kdump
现在可以正常工作。 - BZ#917157, BZ#991024
- 在以前的版本中,因为缺少 SELinux 策略规则,不允许 Nagios Remote Plugin Executor (NRPE)执行
sudo
工具。因此,当用户使用 NRPE 及其自己的 Nagios 插件监控服务器时,会尝试调用所提供的服务的init.d
脚本的状态
操作,以确定服务的健康状况,失败。已更新适当的 SELinux 策略规则,以便 NRPE 现在可以按预期使用sudo
工具。 - BZ#919192
- 由于
/var/lock/subsys/dirsrv-admin
文件的标签不正确,尝试使用控制台重启管理服务器或命令行失败。因此,会返回 AVC 拒绝信息。在这个版本中,为文件和拒绝消息添加了正确的默认安全上下文,现在不再返回。 - BZ#919893
- 在以前的版本中,缺少
/sbin/ip6tables
文件的正确安全上下文。因此,处于 enforcing 模式的 SELinux 会导致Shorewall
工具失败。有了这个更新,安全上下文已更新至iptables_exec_t
。因此,Shorewall
可以正常工作。 - BZ#921234
- 由于缺少 SELinux 策略规则,不允许
abrt_t
SELinux 域转换至prelink_t
SELinux 域。因此,软件包的 RPM 验证提供了意外终止的软件包二进制文件,在自动错误报告工具(ABRT)处理过程中会失败。SELinux 策略已被修改来修复这个程序错误,以便在上述场景中 RPM 验证不再会失败。 - BZ#922028
- 在以前的版本中,enforcing 模式的 SELinux 会阻止
snmptthandler
工具在/var/spool/snmptt/
目录中执行任何操作,因为目录的安全上下文不正确。在这个版本中,上下文已更新至snmpd_var_lib_t
,以便实用程序现在可以按预期工作。 - BZ#922135
- 由于 SELinux 策略规则不正确,Nagios 应用程序无法临时存储带有测试的文件,从而导致
/var/spool/nagios/checkresults/
目录。在这个版本中,相关的 SELinux 策略规则和 Nagios 不再阻止将文件存储在这个目录中。 - BZ#927003
- 网络信息服务(NIS)主设备可以和其他作为 NIS 从机器运行的机器进行配置。在以前的版本中,当 NIS 客户端更改了 NIS 密码时,新的 AVC 消息会登录到
/var/log/audit/audit.log
文件中。这是因为 SELinux 不允许yppus
工具连接到传输控制协议(TCP) 111 端口。在这个版本中,修改了适当的 SELinux 策略规则,并且 AVC 信息不再记录在上述场景中。 - BZ#927973
- 由于 SELinux 策略不正确,与
postfix
代理一起运行 Apache HTTP 服务器无法正常工作。因此,使用httpd_t
SELinux 标签标记的postdrop
工具无法访问/var/spool/postfix/maildrop/
目录。在这个版本中,httpd_can_sendmail
布尔值已被更新,以允许postdrop
访问该目录。 - BZ#947772
- 当 SELinux 处于 enforcing 模式时,
sanlock-helper
工具不允许向任何进程发送 SIGKILL 信号,该信号注册到sanlock
守护进程中。现在,相关的 SELinux 策略规则已被修改,sanlock-helper
现在可以向注册的进程发送 SIGKILL 信号。 - BZ#950103
- 由于 SELinux 策略规则不足,
pegasus_t
和mount_t
SELinux 域之间的转换无法正常工作。因此,当 OpenPegasus 基于 Web 的企业管理(WBEM)服务尝试使用wbemcli
工具检索文件系统的信息时,SELinux 会拒绝对挂载的访问。在这个版本中,SELinux 策略已被修改,OpenPegasus 现在可以在上述场景中访问挂载。 - BZ#952621
- 当 SELinux 处于 enforcing 模式时,因为缺少 SELinux 策略规则,
沙盒
SELinux 域无法使用继承的用户终端。在这个版本中,相应的规则已更新,以允许沙盒
域使用这些终端。 - BZ#953180
- 由于 SELinux 策略规则不足,当混合 Red Hat Network Satellite 和 Red Hat Network Satellite Proxy 环境中使用了
s2s
服务时,在audit.log
文件中返回以下 AVC 信息:type=AVC msg=audit(1364300742.715:101611): avc: denied { name_connect } for pid=2278 comm="s2s" dest=5269 scontext=system_u:system_r:jabberd_t:s0 tcontext=system_u:object_r:jabber_interserver_port_t:s0 tclass=tcp_socket
添加了适当的 SELinux 规则来修复这个程序错误,在这种情况下不再返回 AVC 信息。 - BZ#956720
- 以前,
opasswd
和opasswd.old
文件使用etc_t
SELinux 上下文进行标记。但是,这些文件包含敏感信息,应该使用shadow_t
上下文进行标记。在这个版本中,SELinux 策略已被修改,文件现在可以按预期使用shadow_t
正确标记。 - BZ#957012
- 在以前的版本中,时钟设备(
/dev/ptp*
)被错误地标记为device_t
SELinux 标签,而不是clock_device_t
。这个更新提供了一个补丁来修复这个程序错误,现在时钟设备已被正确标记。 - BZ#957023
- 在以前的版本中,enforcing 模式的 SELinux 会阻止
svnserve
守护进程使用 TCP 端口 3690。现在,相关的 SELinux 策略规则已被更新,svnserve
现在可以按预期使用端口。 - BZ#957265
- 由于缺少 SELinux 规则,因此无法进行
aide_t
和prelink_t
SELinux 域之间的转换。因此,当 SELinux 在 enforcing 模式下运行时,在cron
任务中执行 aide --check 命令无法正常工作。相关的 SELinux 规则已更新,可以修复这个程序错误,命令现在可以按预期工作。 - BZ#958682, BZ#975921, BZ#1009449
- 在以前的版本中,
mysqld_safe
脚本无法使用shell_exec_t
SELinux 安全上下文执行 shell (/bin/sh
)。因此,mysql55 和 mariadb55 Software Collection 软件包无法正常工作。在这个版本中,SELinux 策略规则已被更新,这些软件包现在可以正常工作。此外,mysqld_safe
SELinux 策略已被修改,以允许SYS_NICE
功能。 - BZ#966106
- 当使用带有
netns
支持的特定版本的 Quantum 服务时,SELinux 会拒绝各种操作,这会导致 Quantum 意外终止。此外,由于操作的 “dontaudit” 规则,除非 SELinux 在 permissive 模式下运行,否则不会返回 AVC 信息。修正了适当的 SELinux 策略,SELinux 不再拒绝操作,在上述场景中不再发生 Quantum 失败。 - BZ#966515
- 在以前的版本中,启用
ftp_homdedir
布尔值允许某些规则,这不应该被布尔值允许。相关的 SELinux 策略已被修改,布尔值现在只允许它应该使用的规则。 - BZ#966635
- 在以前的版本中,
M
unin Common Gateway Interface (CGI)脚本被错误地标记,因此在不正确的 SELinux 域中运行。脚本的文件上下文已更新至httpd_munin_script_exec_t
,脚本现在在正确的 SELinux 域中运行。 - BZ#966640
- 在以前的版本中,
/var/log/syslog-ng
文件被错误地标记为syslog_var_run_t
SELinux 安全上下文。因此,当 SELinux 处于 enforcing 模式时,logwatch
工具无法访问该文件。有了这个更新,syslog-ng
文件的安全上下文已修改为var_log_t
,logwatch
现在可以按预期访问该文件。 - BZ#971594
- 在以前的版本中,尝试将逻辑卷管理(LVM)卷附加到 Red Hat OpenStack 3 实例会失败,因为 SELinux 策略不正确,返回 AVC 拒绝信息。相关的 SELinux 策略规则已被修改,为
hald_t
SELinux 域添加额外的 Multi-Category Security (MCS)属性。现在,在上述场景中不再返回 AVC 拒绝信息。 - BZ#973156
- 在以前的版本中,
/etc/yaboot.conf
文件被错误地标记为etc_t
SELinux 安全上下文。在这个版本中,安全上下文已改为bootloader_etc_t
。 - BZ#974932
- SELinux 策略中缺少
SETUID
和SETGID
功能。因此,当 SELinux 处于 enforcing 模式时,rsyslog
实用程序无法使用$PrivDropToUser
和$PrivDropToGroup
选项丢弃特权。在这个版本中,缺少的功能已添加到 SELinux 策略中,rsyslog
现在可以按预期丢弃权限。 - BZ#978993
- 由于 SELinux 策略规则不正确,SELinux 会阻止
chronyd
守护进程使用SYS_NICE
功能。sched_setscheduler()
功能需要该功能。有了这个更新,SELinux 策略规则已被修改为允许守护进程使用SYS_NICE
。 - BZ#983217
- 在以前的版本中,不允许从
dovecot_t
SELinux 域转换到oddjob_mkhomedir_t
SELinux 域。因此,尝试与 Dovecot 服务器一起创建用户主目录,并且启用了pam_oddjob_mkhomedir
模块会失败,并返回 AVC 信息。SELinux 策略已被修改,现在允许转换。 - BZ#995434
- 在 enforcing 模式下运行的 SELinux 会阻止
lldpad
服务与fcoemon
服务通信。因此,用户无法在 Virtual Machine Manager (virt-manager
)中创建虚拟机,并返回以下 AVC 信息:type=AVC msg=audit(1376046443.294:69876): avc: denied { sendto } for pid=2755 comm="lldpad" path=003030303232 scontext=system_u:system_r:lldpad_t:s0 tcontext=system_u:system_r:fcoemon_t:s0 tclass=unix_dgram_socket
修正了适当的 SELinux 策略,用户现在可以按预期创建虚拟机。 - BZ#998663
- 在以前的版本中,SELinux 策略会阻止基于位于
/var/run/vdsm/storage/
VDSM 的守护进程目录中的卷运行虚拟机。因此,尝试运行这样的虚拟机会意外终止并出现错误。在这个版本中,svirt_t
SELinux 域已被更新,以读取/var/run/
目录中的符号链接。因此,在上述场景中,虚拟机不再失败。 - BZ#1005196, BZ#1005250
- 由于 SELinux 策略规则不正确,某些 SELinux 域无法访问
/sys/devices/system/cpu/
目录。因此,此类域无法从目录获取信息。在这个版本中,相关的 SELinux 策略规则已更新,以允许域访问/sys/devices/system/cpu/
目录。 - BZ#1005806
- 启用了 Multi-Level Security (MLS) SELinux 策略后,
xinetd
守护进程无法执行 shell 脚本,并返回以下出错信息:xinetd[2771]: execv( /usr/local/eal4_testing/audit-test/utils/network-server/pidfile_kill.sh ) failed: Permission denied (errno = 13)
适当的 SELinux 规则已更新,允许xinetd
执行 shell 脚本。 - BZ#1006952
- 由于 SELinux 策略规则不足,尝试使用
libvirt
库启动 QEMU 进程会失败并显示错误。在这个版本中,SELinux 策略已被修改,QEMU 进程现在可以按预期启动。 - BZ#1009661
- 由于 SELinux 策略规则不足,在自动无线测试期间获取作业失败,并返回 AVC 拒绝消息。
因此,用户无法使用无线连接。已更新了适当的 SELinux 策略规则,以修复这个程序错误,以便用户现在可以在上述场景中使用无线连接。
- BZ#1009838
- 由于缺少 SELinux 策略规则,当系统设置为在服务器上使用
yppasswdd
守护进程时,现在允许rpc.yppasswdd
二进制文件读取/var/run/utmp
文件并列出/boot/
目录的内容。相关的 SELinux 策略已更新,守护进程现在可以按预期访问utmp
文件和/boot/
目录。 - BZ#1009859
- 当系统设置为 Concurrent Versions System (CVS)服务器使用可插拔验证模块(PAM)进行客户端身份验证时,不允许 CVS 二进制文件读取
/var/run/utmp
文件。在这个版本中,相关的 SELinux 策略被修复,允许 CVS 按预期读取该文件。
功能增强
- BZ#926022
- 在这个版本中,在 SELinux 策略中添加了一个新的布尔值
ftpd_use_fusefs
。启用后,此布尔值允许 GlusterFS 挂载用于文件传输协议(FTP)数据目录。 - BZ#854963, BZ#876334, BZ#881834, Bz#891779, BZ#1000521
pand
,haproxy
,watchdog
,lldpad
, 和openhpid
守护进程在initrc_t
SELinux 域中运行。在这个版本中,为守护进程添加了 SELinux 支持,它们现在使用自己的独立 SELinux 域。- BZ#871437
- 在这个版本中,提供了 smstools 软件包的新 SELinux 策略。
- BZ#880728, BZ#986198
- 在以前的版本中,手册页不包括所有更新的 SELinux 策略规则。在这个版本中,实际的 SELinux 策略包含在 selinux-policy 软件包中。因此,此类手册页是最新的。
- BZ#889120, BZ#915151, BZ#923246, BZ#924843, BZ#1011963,
- 在以前的版本中,
pacemaker
资源管理器没有定义自己的 SELinux 策略,并使用initrc_t
域。在这个版本中,包括pacemaker
的所有集群管理服务都已合并到cluster_t
SELinux 域。除了此合并外,所有其他 Red Hat Cluster 服务也被更新为使用cluster_t
域。 - BZ#859651, BZ#1004380, BZ#1010324
git_shell_t
SELinux 类型已从 SELinux 策略中删除。在这个版本中,提供了 Git 控制系统的更新的 SELinux 策略。- BZ#890554
- 在这个版本中,Zabbix 监控 系统的 SELinux 策略已更新。
- BZ#915314
- 有了这个增强,一组允许用户挂载 Gluster 文件系统的新规则,已添加到 SELinux 策略中。
- BZ#922732, BZ#966387
- 为
/var/lib/openvpn/
目录添加了新的 SELinux 文件类型和标签。另外,SELinux 策略已被更新,允许 OpenVPN 管理自己的日志文件。 - BZ#928020, BZ#955189, BZ#979421, BZ#999471, BZ#1002593
- 有了这个增强,ama
vis_t
,clamd_t
,clamscan_t
, newclam_t
SELinux 域已合并到antivirus_t
SELinux 域。 - BZ#952827
- 在这个版本中,增加了对 27017, 28017, 27018, 28018, 27019, 28019 端口的 SELinux 支持。现在端口使用其单独的
mongod_port_t
SELinux 端口类型。 - BZ#953652, BZ#963465, BZ#968344, BZ#969485
- 在这个版本中,OpenShift 应用平台的 SELinux 策略已更新,以反映最新的上游策略。
- BZ#953754
- 位于
usr/lib (64)?/nagios/plugins/
目录中的所有 Nagios 插件的文件上下文已更新至nagios_unconfined_plugin_exec_t
上下文。 - BZ#955774
- 有了这个增强,在 SELinux 策略中添加了新的布尔值。
tftp_use_nfs
布尔值允许 Trivial 文件传输协议(TFTP)从 NFS 卷读取公共文件传输服务。tftp_use_cifs
布尔值允许 TFTP 从 CIFS 卷读取。 - BZ#959554
- 新的共享系统证书功能添加了新的位置,系统信任的证书和黑名单信息可以被读取。在这个版本中,SELinux 文件上下文相应更新。
- BZ#964345
- 根据新的 qemu-ga 特性和功能更新了与 QEMU 客户机代理(
)相关的 SELinux 策略。qemu-ga
- BZ#968403
- 在这个版本中,Oracle Automatic Storage Management (ASM)的 SELinux 策略已更新,以反映最新的上游策略。
- BZ#977047
- Zettabyte 文件系统(ZFS)已添加到支持的文件系统的
xattr
列表中。在这个版本中,SELinux 策略会相应地更新。 - BZ#979432
- 新的
openvpn_run_unconfined
布尔值已添加到 SELinux 策略中。启用后,布尔值允许 OpenVPN 执行无限制脚本。 - BZ#986883
- 在这个版本中,互联网协议安全(IPsec)的 SELinux 策略已更新,以反映最新的上游策略。
- BZ#1006370
- 在这个版本中,
openstack-selinux
策略的前缀已从 “quantum” 改为 “neutron”。 - BZ#1011973
- 在这个版本中,TCP 端口 9000 使用
httpd_port_t
SELinux 标签进行标记。
8.199. setuptool
8.199.1. RHBA-2013:0891 - setuptool 程序错误修复更新
错误修复
- BZ#883581
- /usr/share/man/man1/setup.1.gz 文件不再设置可执行标志。
8.200. sg3_utils
8.200.1. RHBA-2013:0956 - sg3_utils 程序错误修复更新
错误修复
- BZ#920687
- show_devices ()函数中使用的逻辑(由"sginfo"命令使用)通过扫描 /dev 目录来识别这些设备打开这些设备。因此,/dev/snapshot 文件被打开,从而导致系统准备 suspend/hibernate,作为此的一部分,阻止热添加的 CPU 被激活。要修复这个错误,显示_devices () 函数中使用的逻辑决定了要打开的设备。因此,运行 "sginfo -l" 命令不再对阻止热添加的 CPU 激活造成意外的影响。
8.201. slapi-nis
8.201.1. RHBA-2013:1671 - slapi-nis 程序错误修复更新
程序错误修复
8.202. scs
8.202.1. RHBA-2013:1688 - sos 程序错误修复和功能增强更新
程序错误修复
- BZ#876309
- SELinux 插件在现代 Linux 发行版中使用了过时的一些命令,因此 sosreport 工具无法从 SELinux 工具和诊断收集一些信息。该插件已被更新,以反映 SELinux 工具和诊断中的更改,以便 sosreport 现在可以从这些组件收集更多信息。
- BZ#883811
- 以前版本的 sos 没有屏蔽 libvirt 的 XML 配置文件和 corosync-obctl 命令的输出中的密码,因此密码可能会被披露给 sosreport 数据的接收者。这个版本会修改对应的 libvirt 和 corosync 插件,以便在从上述源收集 sos 数据时密码过期。
- BZ#888488
- 在以前的版本中,当执行外部命令时,sos 始终使用用户的环境设置,除非环境由用于收集 sos 数据的插件明确指定。因此,收集的输出会受到区域设置和自定义设置,运行 sosreport 命令的用户的自定义设置可能会无法进一步处理数据。在这个版本中,sos 运行带有一致的 LC_ALL 设置的所有外部命令,现在命令输出使用 C 区域来收集。
- BZ#888589
- sosreport 工具以前默认验证所有安装的软件包,这对 CPU 和内存使用情况非常要求。为避免这种情况,rpm 插件现在包含要验证的固定软件包列表,包括内核软件包等核心系统软件包。
- BZ#888724
- 以前的 sos 版本不会保留所收集文件的权限。sosreport 归档中的文件权限可能与主机系统上的文件权限不一致,这可能会误导用户。在这个版本中,sos 保留所收集文件的所有权和权限。
- BZ#913201
- sosreport 工具以前可能会因为尝试从 proc 文件系统(/proc/net/rpc configured/channel)中复制 RPC 频道文件,在本地系统中造成意外的 RPC 失败。这些文件现在从集合中列入黑名单,sosreport 命令不再干扰活跃的 RPC 通信。
- BZ#924925
- openswan 插件之前收集了"ipesec barf"命令的输出,以获取 VPN 相关诊断信息。这可能会导致 sosreport 在包含大型 UID 的帐户运行时显示无响应,并安装了被 bug 771612 影响的 openswan 版本。在这个版本中,ipsec barf 命令不再默认运行,在这种情况下,问题将不再发生,除非从命令行显式启用了 barf 功能。
- BZ#947424
- devicemapper 插件使用过时的语法从 udev 子系统获取信息。名为 "udevinfo" 命令的插件,而不是实际的命令 "udevadm info"。在这个版本中,这个问题已被解决,现在可以为相关的块设备类型收集正确的属性数据。
- BZ#966602
- sosreport 命令错误地假设 tar 程序默认始终在标准输出中写入数据。因此,当设置 TAPE 环境变量时,数据可能会意外写入磁带设备,或者此变量扩展的另一个位置。sosreport 已修改,总是使用 "-f" 选项调用 tar 命令,强制将数据写入标准输出。在其环境中设置 TAPE 变量的用户可以运行 sosreport,而现有磁带设备中的数据可能会被覆盖。
- BZ#986301
- 以前的 sos 版本允许由集群模块收集来自 luci 配置文件中的密码,这样密码可能会被披露给 sosreport 数据的接收者。在这个版本中,修改集群模块,以便 luci 密码现在可以从收集的数据中移出。
- BZ#986973
- 以前的 sos 软件包版本被称为 "wbinfo -u" 命令,从系统 Winbind 配置可见的域收集用户信息。但是,wbinfo 命令可能会在带有许多可信域的大型 Active Directory 安装中使用大量内存和 CPU 时间。因此,sosreport 似乎没有响应,并可能会为其他进程触发内存不足的情况。sosreport 命令已被修改为使用带有 wbinfo 命令的 "--domain='.'" 开关,它将数据收集限制为本地域。此问题不再在上述场景中发生。
- BZ#987103
- sos 的早期版本在配置了 kerberos 身份验证的系统上收集文件 /etc/krb5.keytab。此文件包含加密密钥,是有限的诊断值。现在,可以使用 klist 命令获取文件中的条目摘要。
功能增强
- BZ#868711
- 对于调试与 Gluster 地理复制相关的问题,"gluster volume geo-replication-status"命令的输出可能很重要。因此,gluster 插件现在默认收集这个诊断输出。
- BZ#907861
- ID 映射守护进程(idmapd)控制 NFS 服务使用的身份映射,对于诊断和故障排除工作可能很重要。因此,idmad.conf 配置文件现在在 NFS 客户端和服务器主机上收集,并可在 sosreport 工具中进行分析。
- BZ#924338
- sosreport 工具现在允许为 Open Hardware Platform Interface (OpenHPI)组件收集配置文件。
- BZ#924839
- sosreport 工具现在从系统中找到的 vmcore 转储文件中收集内核日志数据(dmesg 日志)。
- BZ#989292
- sos 软件包现在支持使用 crm_report 工具收集统一集群诊断数据。
8.203. spice-gtk
SPICE
(独立计算环境的简单协议)客户端提供 GIMP Toolkit
(GTK+
)小部件。虚拟机管理器和虚拟机查看器都可以使用此小部件来访问使用 SPICE
协议的虚拟机。
程序错误修复
- BZ#980400
polkit
工具基于较新的GTK+
和GLib
版本构建,因此它依赖于这些版本。在以前的版本中,在不同时升级GTK+
和GLib
的情况下升级spice-gtk
会导致应用程序在启动时意外终止。在这个版本中,RPM 依赖项已被调整,
spice-gtk
RPM 需要新的GTK+
和GLib
版本。因此,除非同时安装了所需的GTK+
和GLib
版本,否则无法安装spice-gtk
。- BZ#879352
- 在此次更新之前,
spice-gtk
默认连接到服务器普通端口,只有在服务器提供了端口时成功。但是,这会阻止spice-gtk
连接到安全端口。在这个版本中,spice-gtk
可以连接到安全端口,而不是首先尝试普通端口。 - BZ#906558
- 在以前的版本中,如果 Shift+CTRL+V 键的组合在 Microsoft Outlook 中的消息窗口上按,
spice-gtk
客户端会意外终止。要解决这个问题,应用了未渲染位映射的缓存面板,客户端不会在上述场景中崩溃。 - BZ#998529
- 当鼠标指针放在 Microsoft Windows 客户机的 PuTTY 会话上时,鼠标指针会出现黑色。光标对比已被改进,现在光标在将鼠标悬停在 PuTTTY 会话时明确可见。
- BZ#885101
- 当
spice-gtk
连接到无法访问的主机时,连接超时错误需要大约 2 分钟。在这个版本中,spice-gtk
仅在报告无法访问的主机错误前等待 10 秒。 - BZ#815639
- 在以前的版本中,
spice-gtk
无法正确处理软件智能卡支持
已被初始化。因此,软件
智能卡支持在迁移后停止工作或重启客户机。作为临时解决方案,如果libcacard
报告软件智能卡支持已被初始化,则在spice-gtk
连接时不要禁用软件智能卡支持。解决这一临时解决方案,软件
智能卡支持
在客户机重新启动或迁移过程中保持工作。
功能增强
- BZ#948618
- 现在
SPICE
客户端可以使用 HTTP 代理服务器支持。SPICE
客户端现在由由环境 SPICE_PROXY=host:port 变量或控制器指定的代理服务器建立与远程服务器的连接。 - BZ#752350
- Red Hat Enterprise Linux 和 Microsoft Windows 操作系统使用不同的行尾序列。在这个版本中,实现了一项新功能,如果
SPICE
客户机代理支持此功能,它会在复制和粘贴期间将行尾部分转换为目标操作系统。 - BZ#978405
- 由于延迟和有限带宽,视频会变得非常好见。在这个版本中,实现了带有调整带宽和延迟的自适应视频流,这提高了视频体验。
8.204. spice-protocol
8.204.1. RHEA-2013:1573 - spice-protocol 增强更新
功能增强
- BZ#978410
- 与有限带宽相比,视频回放的连续性得到了提高。现在,出现较少的情况会下降和暂停,从而获得更好的用户体验。在这个版本中,视频位和回放延迟会被动态调整,使用客户端的定期报告。过去视频播放的带宽和延迟估算现在用于改进未来视频播放的初始参数设置。
8.205. spice-server
程序错误修复
- BZ#823472
- 从使用大多数 SPICE 频道的主线程访问的数据可以通过其他频道的线程访问,如显示和光标频道。为了保护数据,在 SPICE 代码中添加了一个断言检查。但是,对声音频道接口的某些调用使用 Virtual CPU (vCPU)线程。在以前的版本中,这些调用被断言检查拒绝,从而导致 SPICE 服务器和基于内核的虚拟机(KVM) hypervisor 中止。这种调用是无害的,因为 KVM 对 vCPU 和 I/O 线程使用全局相互排除(mutex)。在这个版本中,返回警告信息而不是中止 SPICE 和 KVM。
- BZ#859027
- 当
client_migrate_info()
功能被指定cert-host-subject
选项调用时,然后在第三个调用中调用该选项,第二个时间将释放该选项。这是因为在第二个调用第一次释放后,指针没有设置为 NULL。此行为导致 SPICE 服务器意外终止并出现分段错误。底层源代码已被修改,当未指定cert-host-subject
选项时,指针被设置为 NULL。因此,指针只释放一次,SPICE 在上述场景中不再崩溃。 - BZ#918169
- 当两个项目发送到客户端并且客户端断开连接时,第一项被成功清除,但第二个项目没有被成功清除。因此,由于断言检查失败,SPICE 服务器意外终止。在这个版本中,会应用一个补丁来修复这个程序错误,因此第二个项目现在可以被正确清除。因此,SPICE 服务器不会在上述场景中崩溃。
- BZ#918472
- 由于 SPICE 源代码中的一个错误,尝试运行
getaddrinfo()
功能会失败并显示分段错误。因此,快速模拟器(QEMU)意外终止。底层源代码已被修改,QEMU 在执行getaddrinfo()
时不再崩溃。 - BZ#950029
- 当 SPICE 源服务器在迁移过程中流传输视频数据时,SPICE 服务器可以在发送
MSG_MIGRATE
消息后向 SPICE 客户端发送与流相关的消息。这不允许,客户端将错误的消息转发给目标主机,而不是MSG_MIGRATE_DATA
消息。然后,目标主机中止迁移。这个版本修改了 SPICE 服务器代码,以确保在发送MSG_MIGRATE
和迁移过程成功完成后,只能发送MSG_MIGRATE_DATA
消息。 - BZ#952666
- 在以前的版本中,SPICE 服务器不允许创建带有 “stride >= 0” 路径的面,因为路径没有被测试,且任何 QXL 驱动程序之前没有被请求。因此,当 QXL 驱动程序试图创建此类面时,SPICE 会意外终止,并在某些系统上出现错误。底层源代码已被修改,允许使用 “stride >= 0” 路径创建面。因此,SPICE 服务器不会在上述场景中崩溃。
- BZ#956345
- 在某些情况下,SPICE 服务器可能会在虚拟机迁移时中止。如果虚拟机在之前迁移到同一 SPICE 客户端会话中的当前主机后,可能会发生这种情况。然后,如果原始主机和客户端之间的连接较低带宽连接,新主机会将不正确的连接带宽值传递给 SPICE 客户端,从而导致 SPICE 服务器中止。这个版本提供了一个解决这个问题的补丁,SPICE 服务器现在在此场景中发送正确的连接带宽值。
- BZ#958276
- 在以前的版本中,目标主机不会在迁移过程中将其多媒体时间发送到客户端,以便客户端持有源服务器的多媒体时间。因此,如果源和目标主机有不同的多媒体时间,且没有音频播放,则在客户端迁移后创建视频帧。这个版本应用了补丁来修复这个程序错误,在上述场景中不再丢弃视频帧。
- BZ#977998
- 在以前的版本中,在发送位映射时设置了一个不正确的标记,这会导致客户端显示频道出现无限循环。这个行为特别是在有限带宽条件下。因此,SPICE 服务器可能会变得无响应。底层源代码已被修改来修复这个错误,在这种情况下,SPICE 不再挂起。
- BZ#977998
- 在以前的版本中,客户端响应的等待超时周期被设置为 150 秒。这个持续时间太长,在某些情况下会导致返回服务器错误。在这个版本中,等待的超时时间被设置为 30 秒,以防止服务器错误发生。
功能增强
8.206. spice-vdagent
程序错误修复
- BZ#881020
- 在调整客户机的监控器配置时,SPICE 客户机代理在切换到全屏模式时可能无法设置分辨率,这会使客户机的监控配置处于不一致状态。这是因为当客户机的视频内存耗尽时,代理不会处理情况。在这个版本中,当代理无法调整客户机监控器配置时,将客户机的监控器配置恢复到以前的状态解决了这个问题。
- BZ#894036
- 之前,SPICE 客户机代理预计客户机的监控配置一直持续,并尝试以升序(显示 1、2、3、...)来建立和维护与显示窗口的连接。因此,用户无法打开 的顺序显示,并选择在关闭显示窗口时会显示关闭。这个问题已通过向代理发送稀疏监控配置来解决,该代理允许指定打开或关闭的显示。要在稀疏监控配置中,要禁用的 monitor 配置为 0x0 大小监控器。
- BZ#894365
- 当 spice-vdagentd 守护进程在执行某些任务后(如重新定义窗口大小、复制和粘贴数据并改为全屏模式)后,用户会话 spice-vdagent 进程可能会意外终止。这是因为 SPICE 客户机代理在 spice-vdguestd 重启时尝试释放已经空闲的内存。现在,代理可以正确地释放内存,用户会话 spice-vdagent 进程不会在这种情况下崩溃。
- BZ#895004
- 当使用每个 qxl 设备的多个监视器时,Linux 的 SPICE 客户机代理会记录警告信息,因为 spice-vdagent 支持此类配置。spice-vdagentd 守护进程已被修改,日志中不再会出现警告消息。
- BZ#999804
- 当在没有 virtio 频道的系统中运行 SPICE 客户机代理时,代理会发出有关缺少 virtio 设备的错误信息。在这个版本中解决了这个问题,从代码中删除对应的 syslog () 调用,且系统日志中不再会出现错误消息。
- BZ#1003977
- 当用户在关闭大量数据时重新连接到 remote-viewer 窗口时,复制-paste 功能将停止工作。此外,用户无法通过单击鼠标左键来调用上下文菜单。这是因为 SPICE 客户机代理没有在此情形中释放剪贴板。这个代理已被修改来正确发布剪贴板,问题不再发生。
功能增强
- BZ#799482
- 当客户端运行在与客户机操作系统不同的操作系统(例如,运行 Windows 客户端和 Linux 客户机)时,SPICE 客户机代理现在支持确保正确转换行序列。
- BZ#904082
- 在这个版本中,增加了对使用多个 X11 屏幕的设置的支持。这种设置可以使用多个 qxl 设备来实现,每个设备都映射到单独的屏幕。此设置有以下限制:每个 X11 屏幕(qxl 设备)只能使用一个 monitor,所有 monitor 必须具有相同的解析,并且解析同步必须在客户机机器上完成,因为没有 SPICE 客户端。
- BZ#904084
- 添加了一个新的"-X"命令行选项到 spice-vdagent,它允许在运行时禁用 ConsoleKit 框架和 systemd-logind 服务集成,以便在不使用这些服务的设置时使用。
8.207. spice-xpi
错误修复
- BZ#882339
- 在此次更新之前,spice-xpi 浏览器插件不会删除 /tmp/spicec-XXXXXX/spice-foreign 套接字和 /tmp/spicec-XXXXXX/ 目录,因此在客户端退出后仍存在。这个程序错误已被解决,浏览器插件现在在客户端退出后删除上述文件和目录。
功能增强
- BZ#994613
- 在 spice-xpi 浏览器插件中添加了对 SPICE 连接的代理支持。有了这个更新,spice-xpi 现在能够将代理设置传递给它生成的 SPICE 客户端,例如,从 Red Hat Enterprise Virtualization Manager 门户打开控制台时。
8.208. sssd
8.208.1. RHBA-2013:1680 - sssd 程序错误修复和功能增强更新
程序错误修复
- BZ#872827
- 如果组成员位于所有配置的搜索基础之外,get-group-members 请求可能标记为 done,然后调用者有机会注册回调。因此,解析带有搜索基础外成员的组可能会显示为 stucked。get-group-members 请求已被修复,可调用等待返回结果的特殊 tevent_req_post ()函数,直到调用者注册回调为止。即使成员位于配置的搜索基础之外,请求也会正常工作。
- BZ#906398
- 在组处理代码库中使用了一个 get_attribute 调用,当请求不存在的属性时,可能会分配空属性,而不是重新分配之前的属性数组。重新分配可能具有无效的现有指针,这些指针之前指向该数组。如果组根本不包含成员,则数组可以被重新分配,现有的指针无效,从而导致 SSSD 守护进程意外终止。要修复这个错误,现在使用另一个 get_attribute 来返回 ENOENT 错误,而不是创建空属性。因此,SSSD 不再在上述场景中崩溃。
- BZ#911329
- pam_pwd_expiration 警告被错误地设置为 Kerberos 提供者的 “0” 值,因此当服务器发送时,始终显示密码过期警告。因此,在某些环境中,如 Active Directory (AD)或 IPA,每次登录时都会显示警告信息。这个版本应用补丁来修改此行为,现在默认将警告设置为在七天中仅显示一次。
- BZ#914433
- 为 IPA 供应商创建登录文件的代码无法正确处理错误条件,在编写 SELinux 标签失败后无法恢复。当系统上没有 selinux-policy-targeted 目录时,SSSD 守护进程写入的目标目录缺失。因此,写入登录文件会失败。在这个版本中,底层源代码已被修改,SSSD 现在可以正确处理写入失败。
- BZ#916997
- 在以前的 Red Hat Enterprise Linux 版本中,可以检索非常大的活动目录(AD)组而不是跳过它们。但是,此行为可能会导致性能问题,因为额外的解析需要很长时间。要修复此错误,添加了一个新的选项 “ldap_disable_range_retrieval”,允许 SSSD 守护进程跳过非常大的 AD 组。
- BZ#918394
- 当使用 sss_cache 工具重置内存缓存时,SSSD 守护进程不会关闭文件描述符,这会导致文件描述符泄漏。底层源代码已被修改,在上述场景中,文件描述符会被正确关闭。
- BZ#948830
- Netgroups 可以包含来自其他来源的嵌套网络组,以便 SSSD 守护进程一次只解析一个嵌套级别,并允许 glibc 库查询其他源。但是,每个嵌套级别都有一个完整的查询,因此嵌套的 netgroup 处理非常慢。在这个版本中,引入了一个新的选项 “refresh_expired_interval”。选项控制更新后台已过期记录的任务,而不是等待用户登录。因此,嵌套的 netgroup 处理速度更快。
- BZ#950874
- 在以前的版本中,对于使用大写字符写入的用户名的用户,简单访问控制会拒绝对不区分大小写的域的访问。这个版本提供了一个补丁来修复这个程序错误,以便所有用户现在可以按预期登录。
- BZ#951086
- 如果处理 LDAP 请求的时间超过客户端超时(默认为 60 秒),在完成请求时,PAM 客户端可能会访问之前因为客户端超时而释放的内存。因此,sssd_pam 进程会意外终止,并显示分段错误。在这个版本中,SSSD 守护进程在检测到达到此请求的设定超时时会忽略 LDAP 请求结果。因此,sssd_pam 进程不会在上述场景中崩溃。
- BZ#953165
- 每次保存用户帐户时,SSSD 守护进程都会使用没有索引的属性来执行不必要的搜索。因此,保存大量用户帐户会消耗几乎 100% 的 CPU,特别是在枚举过程中,因为 SSSD 正在搜索非索引的属性。在这个版本中,搜索已被禁用,SSSD 在保存枚举结果时不再消耗 CPU 数量。
- BZ#954275
- 当尝试使用域名系统(DNS) SerRVice 记录(SRV)失败时,SSSD 守护进程不会重试 SRV 查询,即使查询内部超时已通过时也是如此。因此,当服务器发现过程第一次失败时,特别是在引导时,SSSD 不会重试查询,直到重启或客户端的网络状态更改了 SSSD 网络状态。这个版本应用了补丁来修复这个程序错误,以便 SRV 查询总是在经过超时后重试。现在,在上述场景中,SSSD 可以正确地重试 SRV 查询。
- BZ#954323
- 宽限期警告代码会在强制更改密码前显示保留的登录次数。在以前的版本中,该代码 “中有一个非一” 的比较错误。因此,当 389 目录服务器用作服务器时,不会显示最后的宽限期警告。在这个版本中,这个比较已被修复,宽限期中的所有登录都会按预期生成警告。注意请注意,当 389 Directory Server 或 Red Hat Directory Server 是轻量级目录访问协议(LDAP)服务器时,宽限期警告当前才可以正常工作。grace 警告不适用于 OpenLDAP 服务器,这是一个已知的问题。
- BZ#963235
- 当其成员位于配置的搜索基础外的组被搜索时,搜索请求会错误地终止。这会导致无用内存访问,因此 sssd_be 进程可能会意外终止。搜索请求已被修复,它现在可以正确终止,即使所有组成员都不在配置的搜索基础之外。因此,sssd_be 不再在上述场景中崩溃。
- BZ#966757
- 默认域名系统(DNS)超时值太高,阻止 SSSD 守护进程切换到所有配置的 DNS 服务器。当在 /etc/resolv.conf 文件中配置出现故障的 DNS 服务器时,DNS 请求在能够通过 文件中配置的所有 DNS 服务器执行故障转移之前被终止。现在,默认的 DNS 超时已被降低,SSSD 通过所有配置的 DNS 失败可以正常工作。
- BZ#967636
- 在某些情况下,从 SSSD 守护进程返回到自动挂载程序守护进程的 autofs 映射数量不正确,例如映射太大时。因此,映射不会可靠地返回到自动挂载程序。现在,这个程序错误已被解决,映射的数量在所有情况下都正确。
- BZ#973345
- 如果缓存包含两个具有相同名称的条目(即意外情况),搜索请求不会被正确终止。实际上,请求被终止两次,因此请求终止的第二次时间,它可能会访问随机内存。缓存搜索期间的错误处理已被修改,请求仅终止一次。因此,SSSD 守护进程现在可以在缓存损坏时处理情况。
- BZ#978966
- 在以前的版本中,sudo 刷新处理器使用不正确的回调。因此,在某些情况下可以访问不正确的内存,因此 sssd_sudo 进程意外终止。在这个版本中,处理器使用正确的回调,以便在上述场景中进程不再崩溃。
- BZ#978994
- 在以前的版本中,sssd.conf (5)手册页中的 “min_id” 选项的描述误导。它表示可以将选项设置为 “0” 值,这不正确。在这个版本中,描述已被修改,因此 man page 现在可以正确地描述选项的最小值为 “1”。
- BZ#979046
- 在以前的版本中,IPA 供应商尝试在基于主机的访问控制(HBAC)评估过程中将 member 属性的原始值保存到缓存中。这些值由 memberof 插件处理,当存在非常大的主机组时,这需要大量处理时间。因此,sssd_be 进程使用 99% 的 CPU,这会显著减慢登录过程。在这个版本中,member 属性不再存储,HBAC 评估可以更快地进行。
- BZ#983028
- 当用户尝试使用 passwd 实用程序更改密码并错误地写入当前密码时,会返回以下 passwd 错误:
Authentication token manipulation error
此消息似乎是系统错误,可能会使用户混淆。在这个版本中,SSSD 会发送指定问题的额外错误消息:Old password not accepted
- BZ#984814
- 在某些情况下,存储在快速内存缓存中的记录可能会损坏。在这种情况下,sssd_nss 进程意外终止。添加了额外的测试,以便在访问请求前检查快速缓存。现在,当记录无效时,它们会被跳过并从 SSSD 守护进程请求,从而避免 sssd_nss 崩溃。
- BZ#986379
- 在以前的版本中,“sss_cache -N” 命令不会使 SSSD 内存中缓存无效。因此,最近查询的网络组不会在其过期时间前刷新,即使执行了该命令。这个版本应用了补丁来修复这个程序错误,以便命令现在可以正确地使 netgroups in-memory 缓存无效。
- BZ#987479
- libsss_sudo 软件包不需要应使用 SSSD 守护进程的 sudo 工具的特定版本。因此,软件包可以使用与 SSSD 不兼容的 sudo 版本安装。在这个版本中,软件包需要正确版本的 sudo。
- BZ#988525
- 如果 SSSD 守护进程无法将 sudo 规则保存到缓存,它会返回错误并停止处理 sudo 规则的其余部分。因此,相关提供程序中没有保存任何规则,因为一个规则的错误会取消整个事务。在这个版本中,当无法将 sudo 规则保存到缓存中时,日志中会附加一条消息,并跳过规则并处理剩余的规则,并可以正常工作。因此,除有问题的 sudo 规则以外的所有操作都会保存到缓存中。
- BZ#997406
- 由于底层源代码中的一个错误,在某些情况下可能会覆盖到条目的指针。因此,sssd_nss 进程会意外终止,并显示分段错误。已修改代码来解决这个问题,sssd_nss 不再崩溃。
- BZ#1002161
- 当系统上配置了超过 265 KB 的大量 sudo 规则时,因为 sss_packet_grow ()函数计算响应数据包的总长度的方式,SSSD 守护进程会失败,并显示以下错误消息:
Unable to create response: Invalid argument
在这个版本中,sss_package_grow () 函数代码已被修复,以正确地计算响应数据包长度,SSSD 在上述场景中不再失败。 - BZ#1002929
- 当动态域名系统(DNS)更新操作超时时,会释放与操作相关的某些数据。然后,子处理程序试图访问这些数据,这会导致 sssd_be 进程出现分段错误。在这个版本中,一个补丁用于修复这个程序错误,现在当操作超时时处理程序会中止。因此,在上述场景中不再会发生分段错误。
- BZ#1019979
- 如果在此连接的搜索操作时,轻量级目录访问协议(LDAP)连接被终止,搜索回调可以访问不再存在的连接的属性。因此,sssd_be 进程意外终止。要修复这个错误,在搜索回调中添加了一个额外的测试。测试在访问其属性前检查连接的有效性。因此,SSSD 守护进程不会在上述场景中崩溃。
功能增强
8.209. subscription-manager
程序错误修复
- BZ#1000145
- 在以前的版本中,python-rhsm 工具使用已弃用的 API。因此,用户会显示弃用警告信息。在这个版本中,弃用警告信息不再显示。
- BZ#914113
- 在此次更新之前,会调用已弃用的 "hasNow ()" 函数的 rhsmd 守护进程。因此,用户会显示 "DeprecationWarning: Call to deprecated function: hasNow" 警告。在这个版本中,"hasNow ()"功能已被删除,弃用警告信息将不再显示。
- BZ#1012566
- 在此次更新之前,/etc/cron.daily/rhsmd cron 作业的脚本有不正确的权限。因此,即使非 root 用户也具有执行权限。在这个版本中,权限会改为正确的 "0700" 值,只有 root 用户有执行权限。
- BZ#872697
- 在以前的版本中,"Configure Pro_xy"消息的日语翻译包含大量的下划线字符。因此,ja_JP 区域的用户会显示不正确的文本。在这个版本中,添加了正确的消息。
- BZ#985090
- 在此次更新之前,通过按 "TAB" 键两次自动完成 "rhsmcertd" 命令无法正常工作。因此,会显示不正确的选项。修复了 tab 补全脚本来显示正确的选项。请注意,对于自动完成功能,需要 bash 补全软件包。
- BZ#988085
- 在以前的版本中,在运行 "subscription-manager config --remove <server.hostname>" 命令后,"hostname =" 行已从 "rhsm.conf" 配置文件中完全删除。因此,命令行界面(CLI)无法访问 "subscription.rhn.redhat.com" 的默认值。在这个版本中,"hostname =" 行恢复到上述场景中的预期默认值。
- BZ#996993, BZ#1008557
- 在这个版本中,在 "subscription-manager list --available" 命令的输出中添加了两个新字段。"提供"字段显示系统符合条件的产品的名称。添加了 "Suggested" 字段来促进合规性,并提供带有图形用户界面(GUI)的奇偶校验。
- BZ#869046
- 在以前的版本中,subscription-manager 工具仅在连接到代理失败时只包含常规错误消息。因此,当用户试图访问不正确的代理服务器时,用户会收到一个未格式化的错误消息,尝试通过不正确的代理端口进行连接,或者无法输入正确的密码。在这个版本中,为上述情况添加了更详细的错误消息。
- BZ#1001820
- 在此次更新之前,通过按 "TAB" 键两次自动完成 "subscription-manager attach" 子命令无法正常工作。因此,会显示不正确的选项。修复了 tab 补全脚本来显示正确的选项。请注意,对于自动完成功能,需要 bash 补全软件包。
- BZ#1004385
- 在以前的版本中,按 "TAB" 键两次自动完成 "rhsm-icon" 命令无法正常工作。因此,在结尾使用逗号显示选项。修复了 tab 补全脚本来显示正确的选项。请注意,对于自动完成功能,需要 bash 补全软件包。
- BZ#1004893
- 在某些情况下,"subscription-manager list --installed"命令会返回不正确的状态。因此,当新的产品证书包含新产品时,新可用产品的显示状态为 "Not Subscribed"。这个程序错误已被解决,在上述场景中新可用产品的显示状态现在为 "Subscribed"。
- BZ#1011234
- 在某些情况下,"subscription-manager list --available"命令会返回不正确的值。因此,对于未设置服务级别的订阅池,会显示误导 "None"。这个程序错误已被解决,现在在这种情况下会显示空字符串。
- BZ#1006985
- 在此次更新之前,在迁移具有相同产品 ID 的不同产品证书时,subscription-manager-migration 脚本无法正常工作。因此,证书安装在同一名称下,且不可用。这个程序错误已被解决,当检测到具有相同 ID 的不同产品证书时,迁移会中止。
- BZ#1008603
- 在以前的版本中,subscription-manager 工具需要连接到 "subscription.rhn.stage.redhat.com" 站点才能列出产品。因此,连接失败时不会显示产品列表。这个程序错误已被解决,用户现在可以从本地缓存列出产品。
功能增强
- BZ#909778
- 在这个版本中,在 "subscription-manager repos --list" 子命令中添加了 "--proxy" 选项。现在,在连接到 candlepin 服务器时,用户可以设置代理。
- BZ#983670
- 使用带有 "subscription-manager auto-attach" 子命令的 "--help" 选项时显示的描述更加精确。
- BZ#986971
- Subscriptions 表中的 "Available Subscriptions" 标头已被简化为 "Available",这会为用户节省空间并更清晰。
- BZ#1011961
- 在这个版本中,权利证书中显示的数量已从混淆 "-1" 改为 correct "Unlimited"。
- BZ#994620
- 这个版本为 rhsm-icon 工具提供了更加精确的工具信息。现在,当完全兼容的机器上有部分订阅时,消息会显示"Partially entitled subscriptions",而不是前面的"合作伙伴授权产品"。
- BZ#1004341
- 在这个版本中,通过按 "TAB" 键两次添加了对自动完成 "subscription-manager-gui" 命令选项的支持。请注意,对于自动完成功能,需要 bash 补全软件包。
- BZ#1008016
- 在这个版本中,subscription-manager 工具会在成功订阅后立即生成 /etc/yum.repos.d/redhat.repo 软件仓库,不需要额外的步骤。
- BZ#1009600
- 当运行 "subscription-manager list --consumed" 命令时,输出现在会显示 "System Type: Physical/Virtual"。这允许用户确定授予的权利是虚拟的。
8.210. sudo
安全修复
- CVE-2013-1775
- sudo 处理时间戳文件的方式中发现了一个安全漏洞。攻击者可以以本地用户运行代码,并能够控制系统时钟,通过运行允许 victim 用户运行的命令而获得额外的特权,而无需知道 victim 的密码。
- CVE-2013-2776,CVE-2013-2777
- 当 /etc/sudoers 文件中启用了 tty_tickets 选项时,sudo 没有正确验证控制终端设备。攻击者能够以本地用户运行代码可能会获得额外的权限,方法是运行允许 victim 用户通过 sudo 运行的命令,而无需了解 victim 的密码。
程序错误修复
- BZ#880150
- 在以前的版本中,sudo 不支持系统安全服务守护进程(SSSD)的源的 netgroup 过滤。因此,SSSD 规则也会应用到所有用户,即使它们不属于指定的 netgroup。在这个版本中,实现了 SSSD 源的 netgroup 过滤。因此,带有 netgroup 规格的规则仅应用到属于 netgroup 的用户。
- BZ#947276
- 当 sudo 实用程序设置运行命令的环境时,如果 RLIMIT_NPROC 资源限值没有限制,它会将 RLIMIT_NPROC 资源限值的值重置为此限制的父值(current)和 hard (maximum)值。现在,提供了一个上游补丁来解决这个程序错误,RLIMIT_NPROC 现在可以设置为"unlimited"。
- BZ#973228
- 由于上游重构 sudo 代码,SUDO_USER 变量存储运行 sudo 命令的用户的名称不会像以前一样记录到 /var/log/secure 文件。因此,用户名 "root" 始终会被记录,而不是实际用户名。在这个版本中,sudo 的之前行为已被恢复。现在,预期的用户名被写入 /var/log/secure。
- BZ#994626
- 由于 sudo 规则列表代码中的 loop 条件中的一个错误,在某些情况下可能会出现缓冲区溢出。这个条件已被修复,缓冲区溢出不再发生。
功能增强
8.211. suitesparse
错误修复
- BZ#902854
- suitesparse base 软件包缺少通用公共许可证(GPL)的副本。该许可证包含在 suitesparse-doc 子软件包中,但可以在没有 suitesparse-doc 子软件包的情况下安装 suitesparse。在这个版本中,许可证的副本也包含在基本软件包中。
8.212. sysstat
程序错误修复
- BZ#804534
- 在以前的版本中,sysstat 软件包不支持动态属性的主设备号。因此,使用这些数字的设备不会在其实际名称下在 sar 报告中。在这个版本中,对动态属性的主设备号的支持已添加到 sysstat 中。因此,所有设备现在都显示在 sar 报告中的正确名称。
- BZ#967386
- 之前的 sysstat 更新以向后兼容的方式更改了二进制数据文件,但这些二进制数据文件的版本号保持不变。因此,使用更新的 sysstat 版本来读取较早版本的 sysstat 创建的二进制数据文件可能会产生无效的结果。sysstat 二进制文件的版本号已更新,从而解决了这个问题。因此,当前的 sysstat 版本不会读取之前版本创建的二进制数据文件。如需更多信息,请参阅 sar (1)手册页中的"-legacy"选项的描述。
- BZ#996134
- 在此次更新之前,umask 命令是在 sa1 脚本中执行的。在某些情况下,这可能会导致新创建的文件的权限不正确。在这个版本中,执行 umask 已移到 sa1 脚本中的相应位置。因此,新创建的文件具有正确的权限。
功能增强
- BZ#826399
- 内核设备名称(如 sda 或 sdb )可能会在每次引导时指向不同的设备。为了防止可能的混淆,在 iostat 和 sar 程序中添加了对持久性设备名称的支持。可以使用 iostat 和 sar 的新"-j"命令行选项启用持久名称。
- BZ#838914
- sysstat 软件包已修改,以存储所收集的统计信息。原始的 7 天期限已延长至 28 天,从而可以更好地分析更复杂的性能问题。
- BZ#850810
- 有了这个更新,在 iostat 程序中添加了一个新的"-y"选项。此选项允许在报告中跳过第一个"自引导"统计信息,因此不再需要在此基础上对 iostat 输出进行后处理。
8.213. system-config-date
错误修复
- BZ#760977
- 当在系统安装过程中使用不受支持的区域设置时,firstboot 工具会在安装初始阶段后失败,并显示堆栈追踪。因此,用户无法配置外围设备、用户、kdump 和其他设置。在这个版本中,底层代码已被修改来捕获由不正确的区域设置值导致的异常,firstboot 现在会警告用户更改其区域设置而不是失败。
8.214. system-config-keyboard
错误修复
- BZ#952125
- system-config-keyboard 软件包包含 firstboot 的插件。以前的 system-config-keyboard 版本依赖于 firstboot,因此在没有首次启动时也无法安装软件包。这个错误的依赖项已被删除,现在可以在不拉取 firstboot 的情况下安装 system-config-keyboard 软件包。
8.215. system-config-lvm
错误修复
- BZ#923643
- 由于 system-config-lvm 工具中的一个错误,当系统上发现条状镜像设备时,工具会意外终止。在这个版本中,底层源代码已被修改,用户现在可以与支持的设备完全交互。但是,卷组信息可能无法为剥离的镜像设备正确显示。
8.216. system-config-users-docs
错误修复
- BZ#635248
- 在以前的版本中,屏幕截图中的文本没有被翻译,未转换的屏幕截图与正在运行的程序不匹配。在这个版本中,屏幕截图处于最新状态,并包括了它们的翻译。
8.217. systemtap
程序错误修复
- BZ#920444
- 在以前的版本中,SystemTap "nfs.proc.commit_done" 探测别名错误地解释底层参数。因此,会返回不正确的信息。SystemTap "nfs_proc.commit_done" 探测别名已被修改来正确解释底层参数,它现在会返回正确的信息。
- BZ#743591
- 在此次更新之前,当 I/O 块待处理请求与其他请求合并时,ioblktime.stp 示例脚本无法正确跟踪。因此,关联数组可能会溢出,并出现错误。该脚本已被修改以删除合并的 I/O 块请求。因此,在数组溢出错误后脚本不再失败。
- BZ#874205
- stap-serverd 守护进程没有正确使用 avahi-client API。因此,当 avahi 守护进程停止或重启时,stap-serverd 会意外终止。底层源代码已被修改来正确使用 avahi-client API,stap-serverd 现在可以在不崩溃的情况下处理上述场景。
- BZ#876848
- 如果应用程序的主线程没有达到至少一个静默,如系统调用,SystemTap 实用程序无法附加到应用程序。因此,SystemTap 无法检测应用程序的事件。SystemTap 现在中断了主应用程序线程,以便它可以附加到它。因此,Systemtap 不再丢失任何事件。
- BZ#846789
- 在以前的版本中,当搜索 /lib/modules/ 目录下的内核模块并首先标识基本模块时,SystemTap 工具会使用任意顺序。因此,SystemTap 无法探测一些被更新覆盖的模块。SystemTap 现在使用 modules.dep 文件来对模块搜索进行排序,以便它们与 modprobe 程序的顺序匹配。因此,可以成功探测覆盖的模块。
- BZ#819967
- 在以前的版本中,SystemTap 转换器并不总是包含正确的代码才能使用 caller ()函数,这可能会导致编译错误。在这个版本中,SystemTap 转换器在使用 caller ()函数时包括正确的运行时代码。因此,使用 caller ()不再会导致编译错误。
- BZ#906061
- 在此次更新之前,SystemTap 中无法正确处理 IPv6 地址的范围指定符和 ID。因此,用户无法使用 IPv6 连接到 stap-server。在这个版本中,修正了 IPv6 地址的范围指定器或 ID 的处理,用户现在可以按预期使用 IPv6 连接到 stap-server。
- BZ#902739
- 在以前的版本中,SystemTap 中的 "trace" 工具生成低质量的 C 代码。因此,当编译生成的代码时,gcc 编译器会显示错误消息。这个版本提高了生成的代码的质量,现在不会显示任何警告。
8.218. sysvinit
8.218.1. RHBA-2013:1003 - sysvinit 程序错误修复更新
错误修复
- BZ#814132
- 当 pidof 工具处理 /proc configured/stat 文件时,该文件的内容由 fgets ()函数读取。当新行字符 "\n" 处于进程的名称以及读取文件在 fopen 和 fgets 函数之间消失时,这个函数无法正常工作。因此,在以下情况下发出 "pidof: could not get program name from" 信息。要解决这个问题,程序会读取整个文件,并静默跳过所有具有空内容的文件。因此,带有 "\n" 的新行字符的二进制文件现在可以正确地识别并消失的文件不会发出任何警告信息。
8.219. talk
8.219.1. RHBA-2013:1148 - 对话程序错误修复更新
错误修复
- BZ#691355
- talk 工具允许用户以"username.hostname"格式指定目标用户。与这个类似,以前版本的工具不支持包含句点的用户名。在这个版本中,添加了一个新的命令行选项(即 "-x")来强制使用 "username@hostname" 表单,以便用户名可以包含句点。另外,对应的手册页已扩展,以提供受支持的命令行参数的完整列表。
8.220. tboot
8.220.1. RHBA-2013:1606 - tboot 程序错误修复和功能增强更新
8.221. tomcat6
8.221.1. RHBA-2013:1721 - tomcat6 程序错误修复更新
程序错误修复
- BZ#845786
- 在以前的版本中,当 Red Hat Enterprise Linux 在 IBM System z 或 64 位 IBM POWER 系列计算机上运行时,尝试构建 tomcat6-docs-webapp 软件包会失败。在这个版本中,构建目标中没有设置构架,且软件包可以如预期构建。
- BZ#915447
- 当用户名称与任何现有组名称不匹配时,在 /etc/sysconfig/tomcat6 文件中指定,Tomcat web 服务器无法启动。这个版本应用了补丁来修复这个程序错误,Tomcat 在上述场景中不再失败。
- BZ#950647
- 由于 checkpidfile ()函数中的一个错误,尝试执行 "service tomcat6 status" 命令会失败,并返回错误消息。底层源代码已被修改来解决这个问题,命令现在可以正常工作。
- BZ#960255
- 由于 checkpidfile ()函数中的一个错误,状态脚本不会返回正确的 PID。这个程序错误已被解决,状态脚本现在返回正确的 PID。
- BZ#977685
- Tomcat web 服务器包含一个 tomcat-juli.jar 文件版本,该文件被硬编码为使用 java.util.logging 软件包中的类,而不是 log4j 框架。因此,Tomcat 无法配置为使用 log4j,除非下载了 tomcat-juli.jar 和 tomcat-juli-adapters.jar 文件的完整版本。有了这个更新,tomcat6 软件包现在包含这些文件的正确版本来配置 log4j。
- BZ#989527
- 当配置了多个 tomcat 实例时,如 /etc/sysconfig/tomcat6 配置文件中所述,实例名称与 tomcat 目录的名称不同,"service status"命令会失败。在这个版本中,底层源代码已被修改来解决这个问题,命令不会在上述场景中失败。
8.222. tuned
8.222.1. RHBA-2013:1623 - tuned bug 修复和功能增强更新
程序错误修复
- BZ#904062
- 在以前的版本中,当将多个设备添加到系统中时,udev 规则会为每个新设备重启 ktune 服务。这可能会导致在短时间内进行多次重启。多个重启可能会在内核中触发竞争条件,这目前无法修复。tuned 守护进程代码已被修改,不会每 10 秒触发多个重启,从而防止竞争条件发生。
- BZ#969491
- kernel.sched_migration_cost 可调项之前被保留在其默认值 0.5 ms。因此,大型虚拟化主机可能会在运行队列锁定中遇到大量竞争。在这个版本中,kernel.sched_migration_cost 可调项已在 virtual-host 配置集中增加了 10 倍,从而消除了竞争。
- BZ#905077
- 在以前的版本中,ktune 服务不会保存 readahead 值。在启动时,它将当前的值乘以一个恒定的值,并将值除在停止时相同的常数。这可能会导致在 ktune 启动后添加的设备上设置错误的值。现在,以前的 readahead 值会保存所有设备,并在 ktune stop 上恢复正确的值。
- BZ#912788
- 在以前的版本中,tuned 工具不支持 Transparent Huge Pages (THP)的上游 /sys/kernel/mm/transparent_hugepage 位置。已修改代码并对上游使用的 SYSFS 路径的支持。TuneD 现在支持上述上游路径以及 Red Hat Enterprise Linux 的特定路径。
- BZ#982756
- USB 自动暂停代码以及处理蓝牙的功能中有一个旧的非功能代码拼写错误。因此,当用户激活 spindown-disk 配置集时,会出现各种错误。拼写错误已被修复,蓝牙代码已被更新。因此,当激活 spindown-disk 配置集时,不再会出现错误。
- BZ#838512
- 在以前的版本中,mount 命令用来使用 "no_barriers" 选项重新挂载文件系统,但不能重新挂载所有文件系统。因此,重新挂载偶尔会失败并显示出错信息,这可能会导致用户混淆。在这个版本中,mount 命令的错误消息已被静默。现在,如果无法使用 no_barriers 重新挂载文件系统,它将被静默跳过,且不会显示任何错误。
- BZ#987547
- 在以前的版本中,会载入 sysctl 工具,在更改电池前运行 shell 脚本。因此,用户无法更改或调整 elevator 参数。这个代码已被重新排序来加载 sysctl,并在 elevator 更改后运行 shell 脚本。现在,用户可以调整 elevator 参数。
- BZ#885080
- diskdevstat 和 netdevstat 代码在命名内置帮助中的参数不一致。术语"total-duration"和"total-interval"表示相同的事情。在这个版本中,文本已被更新为一致,现在只使用 "total-duration" 字符串。
- BZ#959732
- 在以前的版本中 ktune 不会处理 /etc/sysctl.d/ 目录,且不支持使用 sysctl 设置的多个文件。因此,忽略在 /etc/sysctl.d 目录中安装的几个软件包的设置,如 libvirt。在这个更新中,修改 ktune 代码和配置文件。现在,/etc/sysctl.d/ 目录中的所有 sysctl 设置都会被加载,然后载入 /etc/sysctl.conf 文件。用户现在可以指定多个 sysctl 文件(包括通配符)来加载 tuned 配置集。
- BZ#964187
- 在以前的版本中,没有 Tuned virtual-guest 和 virtual-host 配置集的文档。这些配置集的描述已添加到 tuned-adm 手册页中。
- BZ#963821
- 在以前的版本中,tuned-adm 命令的内置帮助中有一个拼写错误。tuned-adm 描述中提到的文本 "tunning" 而不是 "tuning"。这个版本解决了内置帮助中的拼写错误。
- BZ#961792
- tuned 以前将 CPU 锁定到 latency-performance 配置集中的 C0 状态。在这个版本中,latency-performance 配置集被修改为默认使用 C1 状态,从而提高了配置集的性能。
功能增强
- BZ#964193
- 在这个版本中,在 Tuned 工具中添加了 "sapconf" 软件包。tuned-adm "sap" 配置文件用于优化运行 SAP 软件的系统,符合相关的 SAP 准则。
8.223. udev
8.223.1. RHBA-2013:1675 - udev 程序漏洞修复和功能增强更新
程序错误修复
- BZ#833172, BZ#885978, BZ#918511
- 在以前的版本中,对于具有相对大 RAM 大小和大量磁盘的机器,很多 udevd worker 会并行运行,从而最大化 CPU 和 I/O。这可能导致 udev 事件因为硬件瓶颈而超时。在这个版本中,udevd worker 的数量受 CPU 计数的限制,并在有大 RAM 大小的机器上显著降低。现在,较少的 udev worker 无法轻松出现瓶颈,从而导致超时。
- BZ#888647
- 在以前的版本中,udev 工具没有提供到 /dev/disk/by-path/ 目录中的 SCM (存储类内存)设备的符号链接,这会阻止 SCM 设备被其路径引用。在这个版本中,path_id 内置命令支持 SCM 设备并提供符号链接。现在,SCM 设备可以被其路径引用。
- BZ#909792
- 在此次更新之前,libudev.h 头文件没有任何 extern "C" 声明,因此无法在 C++ 程序或应用程序中使用。在头文件中添加了一个 extern "C" 声明,从而修复该程序错误。
- BZ#918511
- 在以前的版本中,start_udev 命令称为 "udevadm settle [options]" 命令,并在默认的 180 秒后超时。然而,一些设备没有完全编译,引导过程将继续造成各种故障。在这个版本中,start_udev 等待 udev 被设置。因此,所有设备都会被编译,引导过程现在可以继续,且没有错误。
- BZ#920961
- 如果在调用 udev scsi_id helper 工具时使用 SCSI 设备,scsi_id 不会返回该设备的任何属性。因此,SCSI 设备的属性无法在 udev 规则中处理。在这个版本中,scsi_id 会在提供前重试为特定时间跨度打开设备。因此,SCSI 设备的属性可以在 udev 规则中处理,即使设备在短时间内使用。
- BZ#982902
- 对于 InterfaceClass=0x08 和 InterfaceSubClass=0x05 的 USB 设备,udev 将 ID 类型设置为 "floppy",这不一定为 true。因此,一些工具可以将 USB 设备解释为软盘。现在,ID 类型被设置为此类 USB 设备的"generic",工具会正确解释 USB 设备。
- BZ#998237
- 在以前的版本中,libudev 工具引用内存,已使用旧地址重新分配到 dev_enumerate_get_list_entry ()函数。但是,调用此功能可能会导致分段错误。在这个版本中,libudev 引用 udev_enumerate_get_list_entry ()中偏移的重新分配内存,从而修复这个程序错误。
功能增强
- BZ#947067
- 在以前的版本中,如果存储在 /dev/ 临时文件中,将无法控制调试输出量,并且通常超过可用内存。在这个版本中,带有 udevlog 的 start_udev 命令调用带有 "-s" 选项的 udevd 守护进程,它会将 udevd 的输出重定向到 /dev/.udev/udev.log 文件,但不会在 debug 模式中设置 udevd。另外,udevd 现在了解规则文件中设置的日志优先级(OPTIONS+="log_priority=<level>"),因此用户可以设置数字 syslog 优先级或其文本表示。另外,还有用于日志记录的新示例规则文件: /lib/udev/rules.d/01-log-block.rules。要为块设备启用 "info" 日志记录,请在内核命令行中添加 "rd.log.block=info"。
8.224. util-linux-ng
程序错误修复
- BZ#885313
- 在以前的版本中,当在空字符串上迭代时,hexdump 工具会用分段错误终止。现在,这个程序错误已被解决,xxdump 不会在此场景中崩溃。
- BZ#911756
- 在以前的版本中,libblkid 库会错误地检测到某些磁盘作为 Silicon Image Medley RAID 设备。因此,这会导致每周重启后某些系统中出现问题。这个版本添加了来自超级块记录的校验和计数,以及来自 dmraid 工具的新超级块定义,这使得 Silicon Image Medley RAID 设备的签名识别更加强大。
- BZ#864585
- 在以前的版本中,"mount -av"命令触发使用 /sbin/mount.nfs 文件等帮助程序挂载文件系统,打印消息"nothing is mounted",即使帮助程序挂载了文件系统。这个程序错误已被解决,在这种情况下不再打印不正确的信息。
- BZ#872291
- 在以前的版本中,hwclock (8)手册页包含对不存在的 adjtimex 工具的引用。在这个版本中修复了 hwclock (8)手册页。
- BZ#915844
- 在以前的版本中,mount (8)手册页错误地描述了 "relatime" 挂载选项。在这个版本中,"relatime"挂载选项的描述已被改进,以更好地描述内核何时更新 atime。
- BZ#917678
- 由于代码中出现回归问题,如果 /etc/fstab 配置文件中的挂载点使用了符号链接,则挂载会尝试该挂载点。此更新可确保 /etc/fstab 中的所有路径都进行规范,现在可以按预期挂载这些挂载点。
- BZ#966735
- 在此次更新之前,lscpu 命令只接受按顺序分配的逻辑 CPU 号。因此,在 CPU 弹出操作后,lscpu 无法正确列出 CPU。在这个版本中,lascpu 命令不会预期按顺序分配的 CPU 号,并在具有热插 CPU 的系统上正常工作。
功能增强
- BZ#816342
- 在以前的版本中,无法确定内核的正确 CLOCAL 标志,也无法确定一些机器需要手动设置。在这个版本中,新的 -L[={always,auto,never}] 选项被添加到 agetty 工具中,以允许对 CLOCAL 终端标记进行完全控制。
- BZ#846790
- 在以前的版本中,kill (1)手册页没有包含有关 kill 工具和线程交互的信息。在这个版本中,kill (1)手册页已被改进,以明确解释 kill 系统调用和线程之间的交互。
- BZ#870854
- 默认终止字符 "@" 与 IPA 系统上的登录用户名与具有"user@domain"约定的登录用户名冲突。在这个版本中,agetty 工具已被改进,可以接受 "--kill-chars" 和 "--erase-chars" 选项来控制特殊终止和擦除终端字符。
- BZ#947062
- 有了这个更新,Red Hat Enterprise Linux 6 中引入了 "blkdiscard" 命令,以丢弃设备扇区。例如精简配置的存储,"discard"支持非常重要,通过回收可用空间来提高磁盘效率,以便存储可以为其他区域重新利用可用空间。
8.225. vhostmd
8.225.1. RHBA-2013:1579 - vhostmd 程序错误修复更新
错误修复
- BZ#820500
- 由于 libmetrics 代码中的错误,在尝试从 vhostmd 获取客户机指标时,用户的程序可能会以分段错误终止。已修复 libmetrics 代码,以执行 XPath 查询并正确将错误传播到用户,以便用户的程序现在可以按预期获取客户机指标。
8.226. virt-manager
程序错误修复
- BZ#820303
- 在以前的版本中,当调用 libvirt 工具时,virt-manager 会忽略一个地址(格式为 "bus:device"),当附加了相同的 USB 设备(格式为 "vendorid:productid"),因此错误的设备已附加到客户机。在这个版本中,用户指定了"bus:device"和"vendorid:productid"的信息,以选择正确的设备。现在,virt-manager GUI 中选择的 XML 或设备中指定的设备会被正确附加到客户机。
- BZ#869206
- 在以前的版本中,更改设备类型或型号不会重置设备应该可以访问的客户机地址。因此,在将 watchdog 从 i6300esb 改为 ib700 后,客户机无法启动。这个程序错误已被解决,客户机现在可以按预期启动。
- BZ#869474
- 当选择由 libvirt 实用程序创建的网桥网络时,virt-manager 无法显示 libvirt 创建的网络详情和配置。另外,会返回以下错误:选择 network: 'None Type' 对象没有属性 'split' 错误在这个版本中,配置由 libvirt 创建的网络。
- BZ#873142
- 在以前的版本中,"创建新虚拟机"virt-manager 对话框在"存储"单元中包含一个拼写错误,显示"Gb"而不是"GB"。拼写错误已被修复。
- BZ#907399
- 由于错误的属性始终设置为"no",在将 SElinux 从 static 选项更改为 dynamic on virt-manager 后出现错误。已提供了一个补丁来修复这个错误。在这个版本中,不会返回任何错误消息,SElinux 现在会从 static 变为 dynamic 选项。
- BZ#981628
- 如果从 virt-manager 中的虚拟机配置中没有"Toolbar"复选框,则任何新虚拟机都无法启动安装,且"Begin Installation"按钮消失。一个补丁已被用来修复这个程序错误,"Begin Installation"按钮不再从 GUI 中消失。
- BZ#985184
- 在以前的版本中,ram 属性只支持 qxl 客户机驱动程序类型。因此,当将视频从 qxl 改为其他模型时,会显示错误。在这个版本中,客户机可以正常工作,并在模型更改时自动删除"ram"元素。
- BZ#990507
- 在此次更新之前,使用 virt-manager 连接物理 CD-ROM 或者 ISO CD-ROM 镜像偶尔无法在 KDE 中工作。另外,选择"Choose Media"对话框用于选择图像或物理设备未显示。现在,提供了一个补丁来修复这个错误,当按"Connect"按钮时,将显示"Choose Media"对话框窗口。
8.227. virt-p2v
8.228. virt-v2v
程序错误修复
- BZ#809273
- 在使用 virt-v2v 实用程序将 Windows 2003 R2 32 位客户机从 Red Hat Enterprise Linux 5 Xen 迁移到 Red Hat Enterprise Linux 6 KVM 后,客户机没有启动。在这个版本中,Windows Xen 驱动程序在转换过程中被禁用,客户机现在可以正常引导。
- BZ#820928
- 在以前的版本中,virt-v2v 假设 Microsoft Windows 操作系统只能安装到 /windows 目录中。因此,当在安装过程中复制了不存在的路径时,virt-v2v 会意外终止。在这个版本中,系统路径不再硬编码,virt-v2v 不再在上述场景中崩溃。
- BZ#829859
- 在以前的版本中,virt-v2v 总是使用第一个内核(0th kernel)而不是默认内核(例如 default=1)。在这个版本中,virt-v2v 使用默认内核来创建新的迁移的虚拟机。
- BZ#887884
- 在此次更新之前,在使用内核引导命令行中的多个控制台条目的 Linux 客户机转换过程中,virt-v2v 会意外终止。在这个版本中,具有多个控制台的客户机可以被成功转换。
- BZ#953994
- 由于 vmware-tools 和 virt-v2v 代码不兼容,virt-v2v 实用程序无法将 ESX Red Hat Enterprise Linux 虚拟机转换为 vmware-tools-foundation 依赖项上的 KVM 虚拟机(基于内核的虚拟机)。现在,应用了修复有问题的依赖项的上游补丁,现在可以成功转换。
8.228.2. RHBA-2013:1749 - virt-v2v 程序错误修复更新
错误修复
- BZ#1028983
- 对 virt-v2v 的更新包括对 VMware 服务器导出的 OVA 镜像导入的上游支持。不幸的是,测试表明由最新版本的 VMware ESX 创建的 VMDK 镜像无法可靠支持,因此此功能已经撤回。
8.229. virt-viewer
程序错误修复
- BZ#809546
- 当使用两个或多个屏幕配置客户机时,对应的客户端监控器中没有正确显示这些屏幕。在这个版本中,virt-viewer 已被修改,以将客户机屏幕正确放在客户端监控器中。
- BZ#846127
- 由于 spice-gtk 实用程序中的一个错误,当虚拟机以全屏模式启动时,客户机屏幕分辨率之后无法更改。因此,解析总是恢复到原生监控解析。这个程序错误已被解决,现在可以在不复杂的情况下更改屏幕分辨率。
- BZ#856682
- 在以前的版本中,当在修改其内容的某些操作过程中打开 Gtk+ 菜单时,尝试重新创建此菜单可能会导致客户端变得无响应。在这个版本中,virt-viewer 仓库可以对现有菜单进行重新创建,而不是重新创建整个菜单。因此,在上述场景中,客户端冻结的风险会降低。
- BZ#864929
- 在此次更新之前,当客户端处于全屏模式时,无法设置高于 monitor 原生分辨率的屏幕分辨率。现在,底层源代码的修改和分辨率大于监控原生分辨率,现在可以以全屏模式进行配置。
- BZ#870710
- 在以前的版本中,在暂停时,键盘事件不会发送到客户机,因此客户机无法中断。这个程序错误已被解决,无论其状态如何,所有键盘事件现在都发送到客户机。现在,按键可以按预期唤醒客户机。
- BZ#875697
- 当客户端仍然连接时客户端关闭时,会显示以下信息:
Unable to connect to the graphic server
在这个版本中,virt-viewer 已被修改,它不会在正常断开连接时报告错误。因此,在上述情况下不再显示错误消息。 - BZ#876444
- 在以前的版本中,当 virt-viewer 在全屏模式下运行时,镜像监控器会随机创建。这个版本修改了 virt-viewer,以维护客户端窗口和监视器的关联。因此,额外的 monitor 不再随机镜像。
- BZ#876445
- 在此次更新之前,当 virt-viewer 离开完整屏幕状态时,客户端窗口的标题栏将变得不可见。现在,在离开完整屏幕时,客户端窗口标题栏可见并可访问。
- BZ#886570
- 在以前的版本中,当 virt-viewer 切换到全屏模式时,客户端和客户机中会显示多个 monitor,即使 monitor 有所不同。这个程序错误已被解决,监控器现在根据其实际容量显示解析。
- BZ#890297
- 在此次更新之前,关闭 virt-viewer 客户机终端后,I/O 错误被写入
libvirtd.log
文件中。在这个版本中,在关闭客户机终端时,libvirt 事件和回调会被取消注册,I/O 错误将不再记录在上述场景中。 - BZ#908057
- 当在 remote-viewer 中禁用了
自动调整大小
的选项,并且更改了客户机计算机上的屏幕分辨率时,不会接受此更改,并且解析恢复回以前的状态。在这个版本中,remote-viewer 已被修改,以便监控配置与客户机同步,即使禁用自动调整大小。 - BZ#908408
- 由于 virt-viewer 返回的不必要的消息,在尝试以全屏模式连接到多监视器 guest 时,辅助监视器有时会在循环中保持闪存。现在,有关额外 monitor 重新配置的消息已被删除,在全屏模式下,额外的 monitor 不再闪存。
- BZ#913601
- 在此次更新之前,在多监视器客户机设置中,发送密钥菜单被错误地放置在辅助监控器中。在这个版本中,virt-viewer 已修改为根据顶层窗口位置正确转换菜单协调。现在,sendkey 菜单会被正确放置在辅助监控器中。
- BZ#924577
- 在按
Alt+S
组合键或其他菜单加速器后,客户机会保持Alt
状态。因此,某些客户机功能无法正常工作。在这个版本中,当客户端用户界面中存在键盘 grab 时,guestAlt
键会被正确释放,从而解决了这个问题。 - BZ#982840
- 在以前的版本中,virt-viewer 无法连接到只使用 SPICE TLS autoport 配置的 libvirt 客户机控制台。在这个版本中,修改了设置逻辑,以检查是否存在任何端口、普通或 TLS。因此,virt-viewer 现在可以成功连接到仅 TLS 的客户机。
- BZ#990883
- 为 Spice 会话输入无效的密码时,不会显示任何错误消息。现在,身份验证失败会被正确处理,如果 Spice 密码无效,则会显示错误对话框。
功能增强
- BZ#864026
- 此更新会在从命令行启动时修改 virt-viewer 启动行为,而无需任何参数。现在,连接对话框处理错误,并允许更正连接详情并尝试新的连接。
- BZ#904091
- 在这个版本中,将--
title
STRING
选项添加到 remote-viewer,这可让您使用用户定义的文本覆盖默认窗口标题。 - BZ#904094
- 在这个版本中,添加了 -
hotkeys
选项,用于从命令行启用热密钥配置。 - BZ#905684
- 在这个版本中,virt-viewer 已被修改,以便在关闭单个 monitor 会话时显示对话框窗口。此对话框要求用户确认,包含未再次显示的选项。
- BZ#908805
- 此更新允许从文件(例如从 RHEVM 门户)设置 remote-viewer 会话,例如通过简单的浏览器链接,而无需特定于浏览器的插件或多进程通信。
8.230. virt-who
8.230.1. RHEA-2013:1715 - virt-who 增强更新
功能增强
8.231. virtio-win
程序错误修复
- BZ#759019
- 在以前的版本中,当 virtio 控制台端口热拔下,然后,新端口被插入在同一数字中重复使用之前无拥有的卷组,QEMU 会报告:
Guest moved used index from 0 to 256
在这个版本中,新插入的端口无法在与之前分离的端口相同的数字下注册。因此,不再显示上述消息。 - BZ#806223
- 在以前的版本中,当使用 virtio-serial 设备时,会尝试从 Sleep (S3)模式恢复系统会导致停止错误(death 的蓝色屏幕)。virtio-serial 中的中断禁用逻辑已被修复,现在可以恢复系统而无需 stop 错误。
- BZ#823818
- 在某些情况下,当 virtqueue 已满时,客户机卷组会变得无响应。因此,会触发一个 bug 检查,netkvm 驱动程序被写入只读中断服务 Routine (ISR)注册,这会导致 QEMU 响应以下信息:
virtio_ioport_write: unexpected address 0x13 value 0x0
这个程序错误已被解决,上面提到的消息将不再显示。 - BZ#840932
- 由于 voiserial 代码中缺少 StopIO 处理程序,在关闭系统时会发生停止错误(蓝色屏幕)。在这个版本中,StopIO 处理程序已添加到 voiserial 中,在系统关闭过程中不再发生 stop 错误。
- BZ#856490
- 由于 virtio-serial 电源状态管理代码中的一个错误,在使用 virtio-serial 实用程序时无法将客户机系统转换为 sleep (S3)或休眠(S4)模式。这个程序错误已被解决,客户机现在可以按预期休眠或休眠。
- BZ#869476
- 由于 Seabios 应用程序代码中的一个错误,系统无法从休眠状态恢复,并且出现停止错误(蓝色屏幕出现问题)。有了这个更新,Seabios 已被修复,现在可以按预期恢复系统。
- BZ#882795
- 在通过 virtio-serial 设备传输数据时,将系统切换到 hibernate 模式(S4)会导致停止错误(death 的蓝色屏幕)。在这个版本中,virtio-serial 中的锁定获取和发行版本逻辑已更改,从而解决了这个问题。
- BZ#889410
- 在以前的版本中,TCP 卸载代码经过优化,但驱动程序中卸载模拟的仅测试模式没有更新,因此无法正常工作。因此,当触发 SW 卸载测试模式时,网络不可用。在这个版本中,删除了 TCP/IP 卸载的 SW 模拟,客户机现在会取消应用主机卸载功能,从而防止网络关闭。
- BZ#902150
- 从 sleep (S3)或休眠(S4)状态恢复系统后,vioserial 设备没有正确操作。在这个版本中,vioserial 中的设备处理逻辑已被更改,vioserial 现在可以在从 S3 或 S4 状态恢复后正常工作。
- BZ#907160
- 当启用 multi-queuue 功能时,会增加 virtio-net 网络驱动程序的基本地址注册(BAR)大小。在以前的版本中,virtio-net 在初始化过程中测试 BAR 大小,因此无法启动。在这个版本中,virtio-net 已被修改来测试 BAR 大小,并使用 virtio 功能检查是否可以访问额外的寄存器。现在,驱动程序可以在不复杂的情况下启动。
- BZ#908198
- 在以前的版本中,virtio-win 软件包中的 WDF 安装程序使用红帽签名签名,该签名覆盖了原始 Windows 签名。在这个版本中,WdfCoInstaller010xx.dll 文件会在没有红帽签名的情况下分发。
- BZ#908725
- 在以前的版本中,virtio-win 软件包中的 ".inf" 文件会被分配,但没有明确规格的修订 ID,这会违反特定的 virtio spec 要求。在这个版本中,这些 ".inf" 文件明确指定修订 id 作为 HW 标识字符串的一部分。
- BZ#912926, BZ#957435
- 在此次更新之前,在 NetKVM 设备关闭过程中可能会在客户机卷组中发生中断。因此,客户机变得无响应。在这个版本中,中断已被禁用,设备关闭现在与设备的 DIRQL (设备中断请求级别)同步。因此,在上述场景中,客户机不再挂起。
- BZ#921200
- 在以前的版本中,如果客户机停止错误(降级的蓝色屏幕)或传出传输中挂起,则 NetKVM 驱动程序使用 VIRTO_ISR 注册进行调试输出。但是,这些问题应该由其他方法检测到。在这个版本中,VIRTIO_ISR 不再用于调试目的。
- BZ#950623
- 在以前的版本中,几个 debug 参数公开给用户。这些参数的潜在更改可能会影响网络设备的功能。在这个版本中,从设备管理器中删除这些测试参数。因此,用户不再看到 debug 和 experimental 参数。
- BZ#950633
- 由于校验和测试中出现意外实施不正确,NetKVM 驱动程序将丢弃某些数据包。checksum 计算已被修复,数据包不会在上述情况下丢弃。
- BZ#951070
- 在以前的版本中,在没有换行符的情况下打印的调试信息的某些部分,这减少了调试信息的可读性。在这个版本中,在 debug 打印行尾字符。
- BZ#951481
- 在以前的版本中,在重新安装 virtio-serial 驱动程序后,驱动程序不会通过串行端口传输数据。这个 bug 已被修复,virtio-serial 现在可以在重新安装序列后正常工作。
- BZ#953812
- 由于 virtio-serial 驱动程序的写请求中存在一个错误,在通过 virtio-serial 端口将数据传输到主机时无法关闭客户机。在这个版本中,即使从客户机传输到主机的数据传输仍在进行中,客户机也可以成功关闭。
- BZ#955844
- 在 virtio-win-1.6.3 中,Windows Server 2012 驱动程序已认证为"Network-Other Device"产品类型,而不是"Network-LAN (Server) "。因此,对"Network-LAN (Server) "的支持没有明确说明。这个版本添加了较新的 pre-WHQL 驱动程序构建,作为 "Network-LAN (Server) " 产品类型。
- BZ#956290
- 由于 NetKVM 驱动程序的锁定序列中有一个错误,设备热拔可能会导致驱动程序变得无响应。这个锁定序列已被修复,NetKVM 在删除意外设备后不再挂起。
- BZ#956882
- 如果使用多个 IP 地址设置了驱动程序,则驱动程序中的 IP 地址结构错误地解析可能会导致停止错误(death 的蓝色屏幕)。因为这个解析只用于调试目的,所以这个更新已从驱动程序中完全删除。
- BZ#957505, BZ#960503
- 由于一个竞争条件,在虚拟机休眠前将 virtio 功能设置为 "0" 可触发 QEMU 断言或网络中断。在这个版本中,这些功能不再设置为 "0",从而防止上面提到的场景中出现断言和网络故障。
- BZ#966809
- 在以前的版本中,在热插 virtio-serial 设备后,从休眠模式(S4)恢复系统会导致停止错误(death 的蓝色屏幕)。这个 bug 已被修复,客户机可以在上述情况下成功恢复。
- BZ#972310
- 如果 NetKVM 驱动程序初始化失败,某些内部系统数据结构也不会被初始化。因此,在驱动程序卸载过程中访问未初始化的数据结构会导致停止错误(蓝色屏幕出现问题)。在这个版本中,部分驱动程序初始化会被正确处理,不再会发生停止错误。
- BZ#982940
- 在以前的版本中,INF 文件错误地表示 1GB 连接率。虽然此大小的连接率可以从设备管理器设置,但无法使用命令行工具设置 1GB 速率。在这个版本中,INF 文件中设定了正确的连接率,现在可以按预期使用命令行来配置此速率。
- BZ#988302
- 自动转换为 Visual Studio 项目,为 netsh 插件的 32 位二进制文件设置不正确的调用惯例。因此,netsh 插件的命令行选项无法在 32 位操作系统中工作。在这个版本中,调用惯例已被更改,netsh 插件命令行选项现在可以在 32 位构架中正常工作。
功能增强
- BZ#713130
- 在这个版本中,添加了对事件索引功能的支持。此功能减少了对大多数操作的每个兆字节的 CPU 使用率,例如在网络传输过程中。
- BZ#904934
- QEMU 中引入了设置 MAC 地址的新机制。现在,可以将 MAC 地址设置为原子更改,QEMU 可以测试 MAC 地址的有效性。
- BZ#920011
- 默认情况下,OVS 交换机从数据包中删除优先级标头,因此从源自 Windows 客户机的数据包中剥离优先级和 VLAN 标签。这个行为现在可以使用 "other-config:priority-tags" 选项进行配置。要保留优先级标签,对于添加到 OVS 网桥的每个端口,需要执行以下命令:
ovs-vsctl set port <PORT_NAME> other-config:priority-tags=true
- BZ#948017
- 在这个版本中,为 qemu-ga-win 代理添加了对 VSS (Volume Shadow Copy Service)的支持。VSS 是一个 Microsoft Windows API,允许一致的冻结和波动操作。借助此功能,虚拟机运行期间执行的快照通过块层到客户机应用的整个堆栈一致,并可用于备份目的。
- BZ#950424
- 在这个版本中,virtio 间接缓冲区功能可以在客户机驱动程序中使用,提供增强的 virtio 功能来传输碎片网络流量。
- BZ#950509
- 有了这个更新,NetKVM 驱动程序构建工具已转换为 Visual Studio 项目或解决方案,提供与 Windows 8 DDK 的兼容性。
- BZ#950617
- 这个版本实现了 RSS (接收扩展),这提高了 Windows SMP 客户机上的 RX 性能。
- BZ#971141
- Windows 客户机代理现在被完全支持,并在 Supplementary 频道中与 virtio-win 驱动程序一起提供自己的安装程序。
8.232. watchdog
8.232.1. RHBA-2013:1656 - watchdog 程序漏洞修复更新
8.233. webkitgtk
8.233.1. RHBA-2013:1613 - webkitgtk 程序错误修复更新
错误修复
- BZ#966571
- 在以前的版本中,WebKitGTK+ 中的 JavaScript 未启用即时(JIT)编译。因此,一些网站在加载和性能时遇到问题。这个版本启用了 32 位 Intel、Intel 64 和 AMD64 架构的 JIT 编译,且不再发生不需要的行为。
8.234. wireshark
安全修复
- CVE-2013-3559, CVE-2013-4083
- wireshark 中发现了两个漏洞。如果 wireshark 从网络中读取出不正确的数据包或打开恶意转储文件,则可能会崩溃或可能,以运行 wireshark 的用户执行任意代码。
- CVE-2012-2392,CVE-2012-3825,CVE-2012-4285,CVE-2012-4288,CVE-2012-4289,CVE-2012-4290,CVE-2012-4291,CVE-2012-4292,CVE-2012-5595, CVE-2012-5597 ,CVE-2012-5597,CVE-2012-5598,CVE-2012-5599 , CVE-2012- 5600 ,CVE-2012-6056 , CVE-2012-605 9, CVE-2012-6 060, CVE-2012-606 1, CVE-2012-606 2, CVE-2013-355 7, CVE-2013- 3561, CVE-2013- 4081, CVE-2013- 4927, CVE-2013- 4931, CVE-2013- 4932, CVE-2013- 4933, CVE-2013- 4934, CVE-2013- 4935, CVE-2013- 4936, CVE-2013-5721
- wireshark 中发现了多个拒绝服务漏洞。如果 wireshark 可以读取一个网络不正确的数据包或打开恶意转储文件,则 wireshark 可能会崩溃或停止响应。
程序错误修复
- BZ#750712
- 在以前的版本中,当检查由 NFSv4.1 生成的流量时,shcont 不会解析 RECLAIM-COMPLETE opcode。现在,提供了一个补丁来启用对 RECLAIM_COMPLETE opcode 的解析,而 wireshark 现在可以正确忽略并处理 NFSv4.1 流量。
- BZ#832021
- 在更新之前,文本文件中的帧异常从数据包捕获文件中的时间戳提前报告一小时。这会导致 dfilter-test.py 测试套件报告各种故障。要修复这个程序错误,帧的 arrival 时间戳已被一小时转移,从而解决了这个问题。
- BZ#1004636
- "tshark -D"命令将输出返回到 Burstable 而不是 STDOUT,这可能会破坏解析"tshark -D"输出的脚本。这个 bug 已被修复,"tshark -D"命令现在将输出数据写入正确的标准输出。
- BZ#715560
- 由于数组 overrun,Valapps 可能会遇到未定义程序行为,或者可能会意外终止。有了这个更新,正确的数组处理可确保在上述场景中的 wireshark 不再崩溃。
- BZ#659661
- 在以前的版本中,dftest 和 rundpkt 命令行工具缺少手册页。在这个版本中,为这两个工具添加了正确的手册页。
8.235. xfsprogs
8.235.1. RHBA-2013:1657 - xfsprogs 程序错误修复更新
程序错误修复
- BZ#893904
- 在以前的版本中,当将 ag_stride 选项指定为 xfs_repair 命令的选项时,命令会用分段错误终止。这个版本修改了底层 XFS 修复代码,因此 ag_stride 选项现在可以正确处理。
- BZ#950691
- 在以前的版本中,在某些文件系统中,xfs_repair 工具偶尔可能会发出警告,如 "7f61c041b700: Badness in key lookup (length) "。这些是与缓存查找失败相关的无害错误,但这些消息可能涉及运行 xfs_repair 的用户。在这个版本中,确保不再遇到这些警告。
- BZ#961501
- 当把条带几何结构手动指定到 mkfs.xfs 命令时,mkfs.xfs 没有正确地选择 "multidisk mode",因为它会在自动检测到条带几何结构时执行。因此,会创建比的最佳分配组数小。在这个版本中,可以正确地选择 multidisk 模式,并创建了大量分配组。
- BZ#962394
- xfs_io (8)手册页不包含 chproj、lsproj 和 setfl 命令的文档。这些命令现在在 man page 中进行了介绍。此外,man page 已被修正,以参考 fallocate ()系统调用的第 2 节。
- BZ#962397
- 在以前的版本中,当遇到多日志的 inode 字段时,xfs_logprint 命令可能会中止,并带有 "xlog_print_trans_inode: illegal inode type" 错误。在这个版本中,修改底层的 logprint 代码,以便可以正确处理多日志的内节点字段,xfs_logprint 会如预期成功完成。
- BZ#964216
- 在以前的版本中,xfs_repair 工具无法正确处理碎片化的多块版本 2 目录,在某些情况下可能会导致 xfs_repair 分段错误。这个更新修改底层代码,因此 xfs_repair 现在可以根据预期在碎片版本 2 目录上运行。
- BZ#987538
- mkfs.xfs (8)手册页不包含"-d noalign"选项的描述,该选项在 mkfs 时禁用自动存储几何结构检测。在这个版本中,这个选项可以被正确记录。
- BZ#1002908
- 在以前的版本中,当遇到持续内节点事务或嵌套的日志时,xfs_logprint 命令可能会失败。在这个版本中,修改底层的 logprint 代码,以便持续的内节点事务和嵌套日志被正确处理,xfs_logprint 现在可以按预期完成。
8.236. xmlrpc-c
8.236.1. RHBA-2013:1254 - xmlrpc-c 程序错误修复更新
错误修复
- BZ#809819
- 在以前的版本中,当运行 "--help" 命令时,运行 "--help" 命令时列出的功能与列表不一致。另外,运行 reproducer 脚本会导致 "Unrecognized token" 错误。在这个版本中,列出的功能一致,不再显示 "Unrecognized token" 错误。
8.237. xorg-x11-drv-ati
错误修复
- BZ#907616
- 在以前的版本中,热插检测和模式设置不会被自动执行。因此,用户必须运行工具程序来在插入多个监视器时强制实施更改。驱动程序已被更新,热插拔检测和模式设置现在可以正常工作。
功能增强
8.238. xorg-x11-drv-intel
程序错误修复
8.239. xorg-x11-drv-mga
程序错误修复
8.240. xorg-x11-drv-nouveau
错误修复
- BZ#876566
- 在以前的版本中,当将 VGA 兼容的控制器用于某些 NVIDIA Quadro 图形卡时,renderedcheck 测试套件无法因为呈现问题而执行完整的检查。xorg-x11-drv-nouveau 软件包已被修复,导致不再发生问题,测试套件可以按预期完成检查。
8.241. xorg-x11-drv-qxl
程序错误修复
- BZ#929037
- 当用户试图使用 Red Hat Enterprise Linux 5 在主机上启动带有 Red Hat Enterprise Linux 6 的客户机时,QEMU QXL 视频加速器会失败,并显示分段错误。因此,客户机无法启动系统 GUI。这个版本会应用一个补丁来修复这个程序错误,客户机现在可以正常启动。
- BZ#951000
- 当将多个 QXL 设备与 Xinerama 扩展一起使用时,当每个 QXL 设备都是一个单独的屏幕时,在 xorg.conf 文件中设置大于 1024 x 768 pixel 的分辨率会失败,并显示错误。在这个版本中,底层源代码已被修改,解析现在可以如预期设置。
8.242. xorg-x11-drv-synaptics
错误修复
- BZ#988174
- 在以前的版本中,synaptics 驱动程序根据设备解析扩展输入协调。因此,X 服务器无法为相对模式中的其他设备应用基于分辨率的统一扩展。解决了 synaptics 驱动程序,只有在 X 服务器不支持每个设备解析扩展时,才会应用扩展功能。
8.243. xorg-x11-drv-wacom
错误修复
- BZ#920385
- 在以前的版本中,xsetwacom 命令无法使用 xsetwacom 命令将 Esc 键映射到 Wacom Cintiq 22HD 平板电脑上的其中一个按钮。因此,命令在没有显示错误消息的情况下失败,密钥不会被映射。现在,这个程序错误已被解决,因此驱动程序现在可以按预期映射 Esc 键。
8.244. xorg-x11-server
安全修复
- CVE-2013-1940
- 在 X.org X11 服务器注册新热插设备的方式中发现了一个安全漏洞。如果本地用户切换到不同的会话并插入新设备,那么在之前的会话中可能会提供该设备的输入,从而导致信息披露。
程序错误修复
- BZ#915202
- 以前的上游补丁将 Xephyr X 服务器修改为可调整大小,但默认情况下不启用调整大小的功能。因此,Red Hat Enterprise Linux 6.4 及更高版本无法调整 X 沙盒的大小。这个版本默认启用重新定义大小功能,以便现在可以按预期调整 X 沙盒。
- BZ#957298
- 在 Red Hat Enterprise Linux 6 中,X 安全扩展(XC-SECURITY)已被禁用,并被 X Access Control Extension (XACE)替代。但是,XACE 尚不包含之前在 XC-SECURITY 中提供的功能。在这个版本中,XC-SECURITY 在 Red Hat Enterprise Linux 6 上的 xorg-x11-server spec 文件中被启用。
- BZ#969538
- 上游代码更改,扩展初始化会意外禁用了 Xvfb (X 虚拟帧缓冲)中的 GLX 扩展,导致无头 3D 应用程序无法正常工作。这个问题的上游补丁已被向后移植,GLX 扩展会被再次启用,依赖这个扩展的应用程序可以正常工作。
8.245. xorg-x11-xinit
错误修复
- BZ#811289
- 在以前的版本中,startx 脚本无法正确处理 xserverrc 文件。如果 /etc/X11/xinit/ 目录中有 xserverrc 文件,则脚本会失败并显示以下错误消息:fatal 服务器错误: Unrecognized 选项: /etc/X11/xinit/xserverrc在这个版本中,X 会话是使用 xserverrc 文件中的选项启动的,startx 脚本现在可以正确处理 xserverrc 文件。
8.246. yaboot
程序错误修复
功能增强
- BZ#947101
- 在这个版本中,对 yaboot 添加了 GUID 分区表(GPT)支持,因为之前 yaboot 支持 DOS 分区格式,其限制为 512B 扇区最多为 2TB。因此,即使有大量磁盘,这个限制也会强制用户将所有设备格式化为 2TB。对于 yaboot 中的 GPT 支持,用户现在可以使用更大的磁盘。
8.247. yum-rhn-plugin
错误修复
- BZ#949649
- 如果以足够慢的网络与父项分开,则 RHN 代理无法正常工作。因此,试图下载更大的 repodata 文件和 RPM 会出现超时的情况。这个版本更改了 RHN 代理和 Red Hat Enterprise Linux RHN 客户端,以便所有通信可以模糊处理连接配置的超时值。
错误修复
8.248. zsh
8.248.1. RHEA-2013:1557 - zsh 增强更新
功能增强
- BZ#820530
- 在这个版本中,将 ${NAME:OFFSET:LENGTH} 替换为 zsh,用户可以使用语法 ${NAME:OFFSET:LENGTH} 来显示子字符串。