From ec531a47c5f3680d8d9013c804d8a1f8c8b33498 Mon Sep 17 00:00:00 2001 From: kcwu Date: Sat, 23 Apr 2005 02:10:06 +0000 Subject: don't save user data if shm corrupted git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2712 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/mbbsd.c | 4 ++++ mbbsd/talk.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index 2d71bbd6..c63ab17a 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -156,6 +156,10 @@ u_exit(const char *mode) close(0); close(1); + assert(strncmp(currutmp->userid,cuser.userid, IDLEN)==0); + if(strncmp(currutmp->userid,cuser.userid, IDLEN)!=0) + return; + reload_money(); cuser.goodpost = currutmp->goodpost; cuser.badpost = currutmp->badpost; diff --git a/mbbsd/talk.c b/mbbsd/talk.c index aad4a45c..deaddd9d 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -2693,12 +2693,14 @@ t_users(void) int mode0 = currutmp->mode; int stat0 = currstat; - if( cuser.userid[0] != currutmp->userid[0] ){ + assert(strncmp(cuser.userid, currutmp->userid, IDLEN)==0); + if( strncmp(cuser.userid , currutmp->userid, IDLEN) != 0 ){ if( HAS_PERM(PERM_SYSOP) ) vmsg("warning: currutmp userid is changed"); else abort_bbs(0); } + setutmpmode(LUSERS); userlist(); currutmp->mode = mode0; -- cgit v1.2.3