大家好,我是站长 polarisxu。
今早,Go 官方发布了 Go1.21.4 和 Go1.20.11,这是两个小版本,主要是 2 个安全更新,涉及 path/filepath 库。
1、path/filepath:识别 `\??\` 作为本地设备根路径前缀。
在 Windows 上,以 `\??\` 开头的本地设备根路径,等效于到以 `\?` 开头的路径。带有 `\??\` 前缀的路径可用于访问系统上的任意位置。例如,路径 `\??\c:\x` 等效于更常见的路径 `c:\x`。
filepath 包没有将带有 `\??\` 前缀的路径识别为特殊路径。
Clean 可以将 \a\…\??\b 等根路径转换为本地设备路径根 \??\b。它现在将转换这个
路径为 `.\??\b`。
IsAbs 没有将以 \??\ 开头的路径报告为绝对路径,现在是了。
VolumeName 现在将 \??\ 前缀识别为卷名。
`Join('\','??','b')` 可以转换一个看似不正确的路径元素序列转为本地设备路径
`\??\b`。它现在会将其转换为 `.\??\b`。
issue 地址:<https://go.dev/issue/63713>。
2、path/filepath:识别带有尾随空格和上标的设备名称
在某些情况下,IsLocal 函数无法正确检测保留名称:
- 保留名称后跟空格,例如“COM1 ”。
- “COM”或“LPT”后跟上标1、2或3。
IsLocal 现在正确地将这些名称识别为非本地名称。
issue 地址:<https://go.dev/issue/63713>
----
Go 语言中文网为你准备了最新包,下载地址:<https://studygolang.com/dl>。
有疑问加站长微信联系(非本文作者)