From 408b165ba3b4b3d6c50bcbe7563386cb04a495c0 Mon Sep 17 00:00:00 2001 From: MeowOS Date: Mon, 31 Aug 2026 01:14:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(svcd):=20load=5Fconf=20=E7=94=A8=E5=B1=80?= =?UTF-8?q?=E9=83=A8tmp,=20*s=3Dtmp=20=E5=90=8E=20argv[]=20=E6=8C=87?= =?UTF-8?q?=E9=92=88=E6=82=AC=E5=9E=82=E6=8C=87=E5=90=91=E5=B7=B2=E9=94=80?= =?UTF-8?q?=E6=AF=81=E6=A0=88=E5=B8=A7(tmp.exec/argbuf)=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=20/proc/pid/cmdline=20=E9=94=99=E4=B9=B1=20=E2=80=94=20?= =?UTF-8?q?=E6=8A=BD=20svc=5Frebuild=5Fargv=20=E9=87=8D=E5=BB=BA=20argv[]?= =?UTF-8?q?=20=E6=8C=87=E5=90=91=20s=20=E8=87=AA=E8=BA=AB=E6=88=90?= =?UTF-8?q?=E5=91=98=20(agent-167)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patch_v2/meow_svcd/meow_svcd | Bin 118780 -> 118908 bytes patch_v2/meow_svcd/meow_svcd.c | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/patch_v2/meow_svcd/meow_svcd b/patch_v2/meow_svcd/meow_svcd index 3a7575f1ff4f693ec0b6b6c34b7044e411ba1152..da7b69c776d613f497722f19fa14940ee038c9b8 100755 GIT binary patch delta 24729 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 q;?r^xIia8x(Zk^{! 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 delta 24466 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[]:argv[0]=exec、argv[i+1]=argbuf[i]、末尾 NULL。 + * s->argv 是指针数组;load_conf 里它指向 s 自身的 exec/argbuf(栈局部 tmp 亦成立), + * 但 scan_and_reconcile 用 *s=tmp 整体拷贝时只复制指针值,仍指向已销毁的 tmp 栈帧。 + * 故赋值后必须重定位到 s 自己的 exec/argbuf,否则 execv 传出的 argv[0]/cmdline 读到脏值。 */ +static void svc_rebuild_argv(svc_t *s) +{ + s->argv[0] = s->exec; + for (int i = 0; i < s->argc; i++) s->argv[i + 1] = s->argbuf[i]; + s->argv[s->argc + 1] = NULL; +} + /* 解析单个 .conf 到 svc(name=basename)。成功返回 0。 */ static int load_conf(const char *path, const char *name, svc_t *s) { @@ -339,10 +350,7 @@ static int load_conf(const char *path, const char *name, svc_t *s) strcmp(s->trigger, "wifi-up")) safe_strcpy(s->trigger, sizeof s->trigger, "card-mount"); - /* argv[0]=exec;随后 args */ - s->argv[0] = s->exec; - for (int i = 0; i < s->argc; i++) s->argv[i + 1] = s->argbuf[i]; - s->argv[s->argc + 1] = NULL; + svc_rebuild_argv(s); return 0; } @@ -709,6 +717,7 @@ static void scan_and_reconcile(void) int keep_user = s->user_stopped; int keep_state = s->state; *s = tmp; + svc_rebuild_argv(s); /* 重定位 argv[] 到 s 自身成员,防悬垂指针 */ s->restart_count = keep_count; s->last_exit_status = keep_exit; s->has_exit = keep_has;