From b481abda1097e9f729bece14b34d7e3b741f73d8 Mon Sep 17 00:00:00 2001 From: piaip Date: Thu, 31 Jan 2008 06:02:30 +0000 Subject: - more checks on fhdr to prevent crash git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3895 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index f77c8310..81ed82a8 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -1277,6 +1277,8 @@ static int do_reply(/*const*/ fileheader_t * fhdr) { boardheader_t *bp; + if (!fhdr || !fhdr->filename[0]) + return DONOTHING; if (!CheckPostPerm() ) return DONOTHING; if (fhdr->filemode &FILE_SOLVED) { @@ -1874,7 +1876,7 @@ read_post(int ent, fileheader_t * fhdr, const char *direct) char genbuf[100]; int more_result; - if (fhdr->owner[0] == '-' || fhdr->filename[0] == 'L') + if (fhdr->owner[0] == '-' || fhdr->filename[0] == 'L' || !fhdr->filename[0]) return READ_SKIP; STATINC(STAT_READPOST); @@ -2578,6 +2580,9 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) char oldrecom = fhdr->recommend; #endif // ASSESS + if (!fhdr || !fhdr->filename[0]) + return DONOTHING; + assert(0<=currbid-1 && currbid-1brdattr & BRD_NORECOMMEND || fhdr->filename[0] == 'L' || @@ -3197,7 +3202,7 @@ view_postinfo(int ent, const fileheader_t * fhdr, const char *direct, int crs_ln int area_l = l + 1; const int area_lines = 4; - if(fhdr->filename[0] == '.') + if(!fhdr || fhdr->filename[0] == '.' || !fhdr->filename[0]) return DONOTHING; if((area_l + area_lines > b_lines) || /* 下面放不下 */ -- cgit v1.2.3