fix
diff --git a/lib/fuse.c b/lib/fuse.c
index 8555c45..e44b9f2 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -1056,6 +1056,8 @@
printf(" READ[%lu] %u bytes\n", fi->fh, res);
fflush(stdout);
}
+ if ((size_t) res > size)
+ fprintf(stderr, "fuse: read too many bytes");
fuse_reply_buf(req, buf, res);
} else
reply_err(req, res);
@@ -1087,9 +1089,16 @@
}
pthread_rwlock_unlock(&f->tree_lock);
- if (res >= 0)
+ if (res >= 0) {
+ if (f->flags & FUSE_DEBUG) {
+ printf(" WRITE%s[%lu] %u bytes\n",
+ fi->writepage ? "PAGE" : "", fi->fh, res);
+ fflush(stdout);
+ }
+ if ((size_t) res > size)
+ fprintf(stderr, "fuse: wrote too many bytes");
fuse_reply_write(req, res);
- else
+ } else
reply_err(req, res);
}