From 1308747b04da9fea7387f1e602eb3aa56712e91c Mon Sep 17 00:00:00 2001 From: kcwu Date: Fri, 1 Jun 2007 18:02:49 +0000 Subject: * fix racing bug for giving money. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3527 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/talk.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/talk.c b/mbbsd/talk.c index a4ba7a1d..9e998621 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -2853,8 +2853,11 @@ userlist(void) if (HasUserPerm(PERM_LOGINOK) && strcmp(uentp->userid, cuser.userid) != 0) { char genbuf[10]; + char userid[IDLEN + 1]; + int touid=uentp->uid; + strlcpy(userid, uentp->userid, sizeof(userid)); move(b_lines - 2, 0); - prints("要給 %s 多少錢呢? ", uentp->userid); + prints("要給 %s 多少錢呢? ", userid); if (getdata(b_lines - 1, 0, "[銀行轉帳]: ", genbuf, 7, LCECHO)) { clrtoeol(); @@ -2863,11 +2866,11 @@ userlist(void) break; } if (getans("確定要給 %s %d Ptt 幣嗎? [N/y]", - uentp->userid, ch) != 'y'){ + userid, ch) != 'y'){ redrawall = redraw = 1; break; } - if (do_give_money(uentp->userid, uentp->uid, ch) < 0) + if (do_give_money(userid, touid, ch) < 0) vmsgf("交易失敗,還剩下 %d 錢", SHM->money[usernum - 1]); else vmsgf("交易成功\,還剩下 %d 錢", SHM->money[usernum - 1]); -- cgit v1.2.3