From 6dbbad9a294b007ec184b689a601ed8077f4d50b Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 2 Dec 2007 03:48:42 +0000 Subject: - shell execute: safer (just commiting ptt2 local modification, not sure who wrote this - thanks!) git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3607 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/kaede.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mbbsd/kaede.c b/mbbsd/kaede.c index 3f284adb..6dd3f95c 100644 --- a/mbbsd/kaede.c +++ b/mbbsd/kaede.c @@ -89,10 +89,15 @@ Rename(const char *src, const char *dst) if (!strchr(src, ';') && !strchr(dst, ';')) // Ptt 防不正常指令 // XXX 這樣是不夠的 { - snprintf(buf, sizeof(buf), "/bin/mv %s %s", src, dst); - system(buf); + pid_t pid = fork(); + if (pid == 0) + execl("/bin/mv", "mv", "-f", src, dst, (char *)NULL); + else if (pid > 0) + waitpid(pid, NULL, 0); + else + return -1; } - return -1; + return 0; } int -- cgit v1.2.3