summaryrefslogtreecommitdiffstats
path: root/mbbsd/chicken.c
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2007-09-21 01:18:53 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2007-09-21 01:18:53 +0800
commitb9539de0ffa696b5f8debe2d3e91e4eab81004fa (patch)
tree0d7dcb34b8264f4e6579452ee580c41d55f5cc85 /mbbsd/chicken.c
parent2b3b00dc185e362e46f93a6ad50fb4d423452551 (diff)
downloadpttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.tar
pttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.tar.gz
pttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.tar.bz2
pttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.tar.lz
pttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.tar.xz
pttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.tar.zst
pttbbs-b9539de0ffa696b5f8debe2d3e91e4eab81004fa.zip
* fix bug: don't getdata() on non-local variable directly, to avoid reentrant crash.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3564 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/chicken.c')
-rw-r--r--mbbsd/chicken.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mbbsd/chicken.c b/mbbsd/chicken.c
index d57a3bfe..f73d8c5a 100644
--- a/mbbsd/chicken.c
+++ b/mbbsd/chicken.c
@@ -101,6 +101,7 @@ new_chicken(void)
{
chicken_t *mychicken = &cuser.mychicken;
int price, i;
+ char tmp_name[sizeof(mychicken->name)];
clear();
move(2, 0);
@@ -128,9 +129,11 @@ new_chicken(void)
return 0;
}
vice(price, "寵物蛋");
- while (strlen(mychicken->name) < 3)
- getdata(8, 0, "幫牠取個好名字:", mychicken->name,
- sizeof(mychicken->name), DOECHO);
+ strlcpy(tmp_name, mychicken->name, sizeof(tmp_name));
+ while (strlen(tmp_name) < 3)
+ getdata(8, 0, "幫牠取個好名字:", tmp_name,
+ sizeof(tmp_name), DOECHO);
+ strlcpy(mychicken->name, tmp_name, sizeof(mychicken->name));
log_file(CHICKENLOG, LOG_CREAT | LOG_VF,
ANSI_COLOR(31) "%s " ANSI_RESET "養了一隻叫" ANSI_COLOR(33) " %s " ANSI_RESET "的 "