summaryrefslogtreecommitdiffstats
path: root/mbbsd/mail.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/mail.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/mail.c')
-rw-r--r--mbbsd/mail.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/mbbsd/mail.c b/mbbsd/mail.c
index 2cc3e886..49d66859 100644
--- a/mbbsd/mail.c
+++ b/mbbsd/mail.c
@@ -179,12 +179,13 @@ int
m_internet(void)
{
char receiver[60];
+ char title[STRLEN];
getdata(20, 0, "收信人:", receiver, sizeof(receiver), DOECHO);
trim(receiver);
if (strchr(receiver, '@') && !invalidaddr(receiver) &&
- getdata(21, 0, "主 題:", save_title, STRLEN, DOECHO))
- do_send(receiver, save_title);
+ getdata(21, 0, "主 題:", title, sizeof(title), DOECHO))
+ do_send(receiver, title);
else {
vmsg("收信人或主題不正確,請重新選取指令");
}
@@ -338,8 +339,11 @@ do_send(const char *userid, const char *title)
/* process title */
if (title)
strlcpy(save_title, title, sizeof(save_title));
- else
- getdata(2, 0, "主題:", save_title, STRLEN - 20, DOECHO);
+ else {
+ char tmp_title[STRLEN-20];
+ getdata(2, 0, "主題:", tmp_title, sizeof(tmp_title), DOECHO);
+ strlcpy(save_title, tmp_title, sizeof(save_title));
+ }
setutmpmode(SMAIL);