From cb0112c1c2ea451e4c74ea6cfac3f66fa3b84d5e Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 19 Nov 2025 15:54:21 +0000 Subject: [PATCH] 9.0 Signed-off-by: shenmo --- debian/changelog | 2 +- src/opt/apps/@PKG_NAME@/files/bin/ace-run | 20 ++++++++++--------- .../apps/@PKG_NAME@/files/bin/ace-run-bwrap | 20 ++++++++++--------- 3 files changed, 23 insertions(+), 19 deletions(-) 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 基础指令