From 538d328a4d98bd1852225ca144cb4893f3df98f0 Mon Sep 17 00:00:00 2001
From: wens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Tue, 21 Oct 2008 03:55:04 +0000
Subject: Check if boards are full when creating new boards

git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4408 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 mbbsd/admin.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

(limited to 'mbbsd')

diff --git a/mbbsd/admin.c b/mbbsd/admin.c
index 3103e831..140261b9 100644
--- a/mbbsd/admin.c
+++ b/mbbsd/admin.c
@@ -890,6 +890,8 @@ static int add_board_record(const boardheader_t *board)
 	substitute_record(fn_board, board, sizeof(boardheader_t), bid);
 	reset_board(bid);
         sort_bcache(); 
+    } else if (SHM->Bnumber >= MAX_BOARD) {
+	return -1;
     } else if (append_record(fn_board, (fileheader_t *)board, sizeof(boardheader_t)) == -1) {
 	return -1;
     } else {
@@ -1006,7 +1008,14 @@ m_newbrd(int whatclass, int recover)
 	}
     }
 
-    add_board_record(&newboard);
+    if (add_board_record(&newboard) < 0) {
+	if (SHM->Bnumber >= MAX_BOARD)
+	    vmsg("�ݪO�w���A�Ь��t�ί���");
+	else
+    	    vmsg("�ݪO�g�J����");
+	return -1;
+    }
+
     getbcache(whatclass)->childcount = 0;
     pressanykey();
     setup_man(&newboard, NULL);
-- 
cgit v1.2.3