summaryrefslogtreecommitdiff
path: root/components/dfs/filesystems/nfs
diff options
context:
space:
mode:
authorqiuyiuestc <[email protected]>2010-09-11 03:45:18 +0000
committerqiuyiuestc <[email protected]>2010-09-11 03:45:18 +0000
commitf245caa86cd8bab2baeb15a41af2c60fed5d3f2f (patch)
tree9647c368d1319d5ecf438ebbeda64877dbdbf764 /components/dfs/filesystems/nfs
parent3c975d6922c5bd451c67f82a010786c979d20fac (diff)
fix memory leak issue
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@900 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/dfs/filesystems/nfs')
-rw-r--r--components/dfs/filesystems/nfs/dfs_nfs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/components/dfs/filesystems/nfs/dfs_nfs.c b/components/dfs/filesystems/nfs/dfs_nfs.c
index 732a525c82..5824dfd806 100644
--- a/components/dfs/filesystems/nfs/dfs_nfs.c
+++ b/components/dfs/filesystems/nfs/dfs_nfs.c
@@ -286,7 +286,8 @@ rt_bool_t nfs_is_directory(struct nfs_filesystem* nfs, const char* name)
xdr_free((xdrproc_t)xdr_GETATTR3res, (char *)&res);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
-
+ rt_free(handle);
+
return result;
}
@@ -337,6 +338,7 @@ int nfs_create(struct nfs_filesystem* nfs, const char *name, mode_t mode)
}
xdr_free((xdrproc_t)xdr_CREATE3res, (char *)&res);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
return ret;
}
@@ -384,6 +386,8 @@ int nfs_mkdir(struct nfs_filesystem* nfs, const char *name, mode_t mode)
}
xdr_free((xdrproc_t)xdr_MKDIR3res, (char *)&res);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
+
return ret;
}
@@ -704,6 +708,7 @@ int nfs_open(struct dfs_fd* file)
copy_handle(&fp->handle, handle);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
if (file->flags & DFS_O_APPEND)
{
@@ -766,6 +771,7 @@ int nfs_stat(struct dfs_filesystem* fs, const char *path, struct _stat *st)
xdr_free((xdrproc_t)xdr_GETATTR3res, (char *)&res);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
return 0;
}
@@ -790,6 +796,7 @@ nfs_dir *nfs_opendir(struct nfs_filesystem* nfs, const char *path)
copy_handle(&dir->handle, handle);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
dir->cookie=0;
memset(&dir->cookieverf, '\0', sizeof(cookieverf3));
@@ -884,6 +891,7 @@ int nfs_unlink(struct dfs_filesystem* fs, const char* path)
}
xdr_free((xdrproc_t)xdr_REMOVE3res, (char *)&res);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
}
else
{
@@ -917,6 +925,7 @@ int nfs_unlink(struct dfs_filesystem* fs, const char* path)
xdr_free((xdrproc_t)xdr_RMDIR3res, (char *)&res);
xdr_free((xdrproc_t)xdr_nfs_fh3, (char *)handle);
+ rt_free(handle);
}
return ret;