aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2005-12-02 11:05:41 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2005-12-02 11:05:41 +0000
commitfa829b5577e6ee2dd8046f488042195bfba496e0 (patch)
tree8ecbf4ecc80fe698da226edabbc472911b5aa51a /lib
parent40d7b38b29cb251e84b3619b8040ac248d944e84 (diff)
downloadlibfuse-fa829b5577e6ee2dd8046f488042195bfba496e0.tar.gz
fix
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/fuse.c b/lib/fuse.c
index 4146d41..8733164 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -1742,6 +1742,7 @@ static void free_cmd(struct fuse_cmd *cmd)
void fuse_process_cmd(struct fuse *f, struct fuse_cmd *cmd)
{
fuse_session_process(f->se, cmd->buf, cmd->buflen, cmd->ch);
+ free_cmd(cmd);
}
int fuse_exited(struct fuse *f)
@@ -1779,6 +1780,8 @@ struct fuse_cmd *fuse_read_cmd(struct fuse *f)
int res = fuse_chan_receive(ch, cmd->buf, bufsize);
if (res <= 0) {
free_cmd(cmd);
+ if (res == -1)
+ fuse_exit(f);
return NULL;
}
cmd->buflen = res;