diff options
author | Jean-Pierre André <jpandre@users.sourceforge.net> | 2012-08-22 10:00:22 +0200 |
---|---|---|
committer | Jean-Pierre André <jpandre@users.sourceforge.net> | 2012-08-22 10:00:22 +0200 |
commit | 5dc02290e54451bc3935674644a9133539c01053 (patch) | |
tree | b088aba65648d55b224b9a6eed4bbaa9b876ae5a | |
parent | 263ae23c5fd69a76e83561e1210e434cc73cb73d (diff) | |
download | illumos-fusefs-5dc02290e54451bc3935674644a9133539c01053.tar.gz |
Freed the vnode if file creation is rejected (avoiding memory leak)
-rw-r--r-- | kernel/fuse_vnops.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/fuse_vnops.c b/kernel/fuse_vnops.c index 237283f..40c5158 100644 --- a/kernel/fuse_vnops.c +++ b/kernel/fuse_vnops.c @@ -629,6 +629,10 @@ get_filehandle(struct vnode *vp, int flag, struct cred *credp, DTRACE_PROBE3(get_filehandle_err_create, char *, "create_filehandle request failed", int, err, struct vnode *, vp); + /* release the vnode, if creation failed */ + VFS_RELE(vp->v_vfsp); + vp->v_data = NULL; + vn_free(vp); goto out; } else if (msgp && msgp->opdata.outdata) { DTRACE_PROBE2(get_filehandle_info_create_ok, |