summaryrefslogtreecommitdiffstats
path: root/mbbsd/record.c
diff options
context:
space:
mode:
authorptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-03-24 00:12:54 +0800
committerptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-03-24 00:12:54 +0800
commitefb5a6333d3fe1b4e9f3c744d6be6aaab27504e9 (patch)
treeaa3e9d28823a9d1a0d534a1db9e9c056e4357608 /mbbsd/record.c
parent876e06732592fefb6ac7fb9d4530105ad29045ff (diff)
downloadpttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar
pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.gz
pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.bz2
pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.lz
pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.xz
pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.zst
pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.zip
fix the problem of black hole
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1602 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/record.c')
-rw-r--r--mbbsd/record.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mbbsd/record.c b/mbbsd/record.c
index 924f1449..64488842 100644
--- a/mbbsd/record.c
+++ b/mbbsd/record.c
@@ -555,14 +555,19 @@ stamplink(char *fpath, fileheader_t * fh)
int
do_append(char *fpath, fileheader_t * record, int size)
{
- int fd;
+ int fd, fsize=0;
+ struct stat st;
if ((fd = open(fpath, O_WRONLY | O_CREAT, 0644)) == -1) {
perror("open");
return -1;
}
flock(fd, LOCK_EX);
- lseek(fd, 0, SEEK_END);
+
+ if(fstat(fd, &st) )
+ fsize = st.st_size;
+
+ lseek(fd, (fsize / size) * size, SEEK_CUR); // avoid offset
safewrite(fd, record, size);