summaryrefslogtreecommitdiffstats
path: root/mbbsd/friend.c
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2002-07-02 21:01:43 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2002-07-02 21:01:43 +0800
commit562677712b03d169f51840c79690111b235ec862 (patch)
tree28b0c9bd3bf6ff7c819045459639d69890c389e7 /mbbsd/friend.c
parent038f26837cc4efacf5798361e0d229516ba119ff (diff)
downloadpttbbs-562677712b03d169f51840c79690111b235ec862.tar
pttbbs-562677712b03d169f51840c79690111b235ec862.tar.gz
pttbbs-562677712b03d169f51840c79690111b235ec862.tar.bz2
pttbbs-562677712b03d169f51840c79690111b235ec862.tar.lz
pttbbs-562677712b03d169f51840c79690111b235ec862.tar.xz
pttbbs-562677712b03d169f51840c79690111b235ec862.tar.zst
pttbbs-562677712b03d169f51840c79690111b235ec862.zip
fix memory bug
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@400 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/friend.c')
-rw-r--r--mbbsd/friend.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/mbbsd/friend.c b/mbbsd/friend.c
index 4a3f636c..c24f6240 100644
--- a/mbbsd/friend.c
+++ b/mbbsd/friend.c
@@ -1,4 +1,4 @@
-/* $Id: friend.c,v 1.7 2002/06/19 13:27:16 lwms Exp $ */
+/* $Id: friend.c,v 1.8 2002/07/02 13:01:43 in2 Exp $ */
#include "bbs.h"
/* ------------------------------------- */
@@ -184,24 +184,22 @@ static void friend_append(int type, int count) {
setfriendfile(sfile, j);
- fp = fopen(sfile, "r");
- while (fgets(buf, 80, fp) && count <= friend_max[type])
- {
- char the_id[15];
-
- sscanf(buf, "%s", the_id);
- if (!belong(fpath, the_id))
- {
- if ((fp1 = fopen(fpath, "a")))
- {
- flock(fileno(fp1), LOCK_EX);
- fputs(buf, fp1);
- flock(fileno(fp1), LOCK_UN);
- fclose(fp1);
+ if( (fp = fopen(sfile, "r")) != NULL ){
+ while (fgets(buf, 80, fp) && count <= friend_max[type]){
+ char the_id[15];
+
+ sscanf(buf, "%s", the_id);
+ if (!belong(fpath, the_id)){
+ if ((fp1 = fopen(fpath, "a"))){
+ flock(fileno(fp1), LOCK_EX);
+ fputs(buf, fp1);
+ flock(fileno(fp1), LOCK_UN);
+ fclose(fp1);
+ }
}
}
+ fclose(fp);
}
- fclose(fp);
}
void friend_delete(char *uident, int type) {