summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
authorscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-08-28 17:49:35 +0800
committerscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-08-28 17:49:35 +0800
commit399423199e47788a2fa68f6f78fb9f9eff9f0443 (patch)
tree190eb1d72dc0cc03bfe00f3a07154c42699334e5 /mbbsd
parentfeace6bb7d989fbf8f8f45cda34b8d60da844ed9 (diff)
downloadpttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.tar
pttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.tar.gz
pttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.tar.bz2
pttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.tar.lz
pttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.tar.xz
pttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.tar.zst
pttbbs-399423199e47788a2fa68f6f78fb9f9eff9f0443.zip
* fix crash when using 'i' to add board in my favorite
* boundry check in move_in_folder() git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3101 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/board.c3
-rw-r--r--mbbsd/fav.c6
2 files changed, 5 insertions, 4 deletions
diff --git a/mbbsd/board.c b/mbbsd/board.c
index fc965804..f9331bc2 100644
--- a/mbbsd/board.c
+++ b/mbbsd/board.c
@@ -1151,8 +1151,7 @@ choose_board(int newflag)
else {
ptr->attr |= NBRD_FAV;
- // FIXME 在空的 folder 'i' 是錯的
- if (ch == 'i')
+ if (ch == 'i' && get_data_number(get_current_fav()) > 1)
move_in_current_folder(brdnum, num);
else
num = brdnum;
diff --git a/mbbsd/fav.c b/mbbsd/fav.c
index 35c3f417..56b3b8c3 100644
--- a/mbbsd/fav.c
+++ b/mbbsd/fav.c
@@ -809,13 +809,15 @@ static void move_in_folder(fav_t *fav, int src, int dst)
dirty = 1;
/* Find real locations of src and dst in fav->favh[] */
- for(count = i = 0; count <= src; i++)
+ for(count = i = 0; count <= src && i < fav->DataTail; i++)
if (valid_item(&fav->favh[i]))
count++;
+ if (count != src + 1) return;
src = i - 1;
- for(count = i = 0; count <= dst; i++)
+ for(count = i = 0; count <= dst && i < fav->DataTail; i++)
if (valid_item(&fav->favh[i]))
count++;
+ if (count != dst + 1) return;
dst = i - 1;
fav_item_copy(&tmp, &fav->favh[src]);