SmartJoin 将包含特殊变量名称的相对路径错误地视为特殊路径
作者: znnnnnnn-wil创建于 2026年9月7日更新于 2026年9月7日
标签area: exec
说明
SmartJoin'错误地将含有.ROOT DIR'等特殊可变名称的普通相对路径视为绝对/特殊路径,导致它们绕过基线连接。
你做了什麽?
我用一个正常的相对路径给`SmartJoin'打电话,其目录名称恰好包含一个特殊的可变名称:
开始 SmartJoin( base, filepath.Join ("project.ROOT DIR", "file.txt")) (中文(简体) ).
表明这一问题的最低限度回归测试是:
开始
func 测试SmartJoinRelativePath 包含特殊变量Name (t *testing.T) {
碱:= filepath.Join ("碱","dir")
路径 := filepath.Join ("project.ROOT DIR","file.txt")
获得 := SmartJoin(基地,路径)
想要:=文件路径。 加入( 碱基, 路径)
如果有的话! = 想要{
t.Fatalf ("SmartJoin () () = %q, 想要%q", 得到, 想要)
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?可以使用:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 进行测试 ./ 内部/ filepathex - 运行的测试SmartJoinRelativePath 包含特殊变量Name - counts=1
你想怎样?
这条道路应当被视为一条正常的相对道路,并与 " 基地 " 相结合。
换句话说:
开始
SmartJoin( base, filepath.Join ("project.ROOT DIR", "file.txt")) (中文(简体) ).应返回以下结果:
开始 filepath.Join( 碱, “ project. ROOT DIR”, “ file.txt” )
发生了什么事?
" SmartJoin " 返回输入的相对路径不变,而不是与 " base " 连接。
同一行为似乎也影响到包含下列内容的相对路径组件:
- '.ROOT DIR'(英语:.
- " .塔斯克菲莱 - 迪尔 "
- . . . . . . . . .
从对实施情况的审视来看,这可能是由使用 " 弦 " 的 " 特别指定 " 造成的。 包含用于检测特殊变量。 因此,即使变量实际上不是QQQ模板表达式的一部分,包含其中一种字符串的普通目录名称也可以相配. .
这可能导致正常的相对路径绕过碱基-指针相接,并且相对于一个出乎意料的位置,包括用于任务目录的路径,包括多腾v文件,或指纹相关逻辑.
翻译:
主机(385e5ad92af02877b6d7cf9dcc963b5ed916e70a)
操作系统
Windows amd64, 前进 1. 26.5
QQ 实验已启用
无内容来源: go-task/task