summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2008-05-30 23:21:06 +0000
committerTill Straumann <strauman@slac.stanford.edu>2008-05-30 23:21:06 +0000
commit9cf3432cc488d64cf958186b7b9e9923ff79cf3c (patch)
tree695abf0c2db41c45cffdb86e1ec3e107410c34c0 /cpukit/libfs
parent2008-05-29 Chris Johns <chrisj@rtems.org> (diff)
downloadrtems-9cf3432cc488d64cf958186b7b9e9923ff79cf3c.tar.bz2
2008-05-30 Till Straumann <strauman@slac.stanford.edu>
* libfs/src/nfsclient/src/nfs.c:BUGFIX: must not attempt to release node if rtems_filesystem_evaluate_path() fails in nfs_eval_link() since pathloc contains no valid node.
Diffstat (limited to 'cpukit/libfs')
-rw-r--r--cpukit/libfs/src/nfsclient/src/nfs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/cpukit/libfs/src/nfsclient/src/nfs.c b/cpukit/libfs/src/nfsclient/src/nfs.c
index 3983e77b9f..62160886d1 100644
--- a/cpukit/libfs/src/nfsclient/src/nfs.c
+++ b/cpukit/libfs/src/nfsclient/src/nfs.c
@@ -2401,6 +2401,11 @@ int rval = RVAL_ERR_AND_DO_FREENODE;
rtems_filesystem_freenode(pathloc);
if (rtems_filesystem_evaluate_path(buf, flags, pathloc, 1)) {
+ /* If evalpath fails then there is no valid node
+ * attached to pathloc; hence we must not attempt
+ * to free the node
+ */
+ rval = RVAL_ERR_BUT_DONT_FREENODE;
goto cleanup;
}
}