已关闭
download_dependencies.sh 中 $target_dir 在赋值前被引用,防重名自覆盖的判断实际恒为真 #65
崇理战队创建于  8月13日关闭于  8月31日
崇理战队
8月13日 创建

src/om/platform/MindXOM_SDK/build/download_dependencies.sh::download_each:

local repo_dir="$repo_name"
...
git clone --depth 1 --branch "$tag" "$repo_url"
if [ $# -eq 4 ] && [ "$repo_dir" != "$target_dir" ] ; then
    local target_dir="$4"
    rm -rf "$target_dir"
    mv "$repo_dir" "$target_dir"
fi

$target_dir 在 if 条件里就被引用,但它的赋值(local target_dir="$4")在 then 分支内部。判断执行时 target_dir 尚未定义(函数局部作用域内为空串),所以 [ "$repo_dir" != "$target_dir" ] 退化为 [ "$repo_dir" != "" ],恒为真——这个本意是"目标目录与仓库目录相同时跳过 rm/mv、防止把刚 clone 的目录删掉"的保护完全失效。

一旦调用方传入的第 4 个参数与仓库名相同,流程会变成 rm -rf 掉刚 clone 出来的目录、随后 mv 失败(set -e 下直接中断构建),而保护条件形同虚设。

修复很直接:把 local target_dir="$4" 提到 if 之前再做比较即可。

likedislike
xiangjie10成员
8月13日 评论:

👋 您好,感谢向 OMSDK 提交 Issue!
🎉 我们已收到您的反馈,感谢你对开源社区的支持!

📅 处理时效 维护团队将在工作日 24 小时内查看并回复您的问题。
🔍 自助排查(推荐优先查看) 在等待回复期间,您可以先查阅仓库README以及历史 Issue 中相似问题的解决方案,多数问题可快速解决。
💡 为了更快定位问题,请您确保 Issue 包含:

  • 清晰的问题描述
  • 可复现的操作步骤
  • 相关日志、截图或环境信息
    我们会尽快跟进,感谢您的理解与配合!
likedislike
xiangjie10成员
8月13日 评论:

/label add triaged

likedislike
ascend-robotascend-robot成员
8月13日 添加了label:triaged
xxzzqqvvqq成员
8月27日 评论:

您好!经过开发人员确认,您反馈的问题真实存在。我们将尽快修复这一问题。再次感谢您的宝贵意见!

likedislike
Xxxzzqqvvqq成员
8月28日 关联了pull request:bugfix:修复download_dependencies.sh中target_dir变量定义错误的问题
Xxxzzqqvvqq成员
8月29日 关联了pull request:bugfix:修复download_dependencies.sh中target_dir变量定义错误的问题
蒋蒋立成员
8月31日 issue状态由 TODO 改变为 DONE
蒋蒋立成员
8月31日 关闭了 issue