diff --git a/debian/changelog b/debian/changelog index a2c70ed..5467a19 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -amber-ce-bookworm (12.8.5) UNRELEASED; urgency=low +amber-ce-bookworm (12.9.1) UNRELEASED; urgency=low * 通用 ACE 构建,现不再需要单独使用构建脚本 * 更方便地更改成其他ACE * 现可在容器内使用 dpkg-buildpackage diff --git a/src/opt/apps/@PKG_NAME@/files/bin/ace-run b/src/opt/apps/@PKG_NAME@/files/bin/ace-run index d5535aa..325c1f8 100755 --- a/src/opt/apps/@PKG_NAME@/files/bin/ace-run +++ b/src/opt/apps/@PKG_NAME@/files/bin/ace-run @@ -24,17 +24,19 @@ uid=$(id -u $non_root_user) #### This part is for args pharm -if [ "$1" = "" ];then -container_command="bash" +if [ $# -eq 0 ]; then + container_command="bash" else -container_command="$1" -shift -for arg in "$@"; do - arg="$(echo "${arg}x" | sed 's|'\''|'\'\\\\\'\''|g')" - arg="${arg%x}" - container_command="${container_command} '${arg}'" -done + # 正确转义所有参数,处理空格和特殊字符 + container_command="" + for arg in "$@"; do + # 使用 printf %q 进行安全的 shell 转义 + escaped_arg="$(printf "%q" "$arg")" + container_command="${container_command} ${escaped_arg}" + done + container_command="${container_command# }" # 移除开头的空格 fi + ######################################################################################### ##########合成bwrap 1. 基础函数配置段 # 初始化 EXEC_COMMAND 为 bwrap 基础指令 diff --git a/src/opt/apps/@PKG_NAME@/files/bin/ace-run-bwrap b/src/opt/apps/@PKG_NAME@/files/bin/ace-run-bwrap index 128f2e6..3dbe66f 100755 --- a/src/opt/apps/@PKG_NAME@/files/bin/ace-run-bwrap +++ b/src/opt/apps/@PKG_NAME@/files/bin/ace-run-bwrap @@ -24,17 +24,19 @@ uid=$(id -u $non_root_user) #### This part is for args pharm -if [ "$1" = "" ];then -container_command="bash" +if [ $# -eq 0 ]; then + container_command="bash" else -container_command="$1" -shift -for arg in "$@"; do - arg="$(echo "${arg}x" | sed 's|'\''|'\'\\\\\'\''|g')" - arg="${arg%x}" - container_command="${container_command} '${arg}'" -done + # 正确转义所有参数,处理空格和特殊字符 + container_command="" + for arg in "$@"; do + # 使用 printf %q 进行安全的 shell 转义 + escaped_arg="$(printf "%q" "$arg")" + container_command="${container_command} ${escaped_arg}" + done + container_command="${container_command# }" # 移除开头的空格 fi + ######################################################################################### ##########合成bwrap 1. 基础函数配置段 # 初始化 EXEC_COMMAND 为 bwrap 基础指令