From 9cf3432cc488d64cf958186b7b9e9923ff79cf3c Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Fri, 30 May 2008 23:21:06 +0000 Subject: [PATCH] 2008-05-30 Till Straumann * 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. --- cpukit/ChangeLog | 6 ++++++ cpukit/libfs/src/nfsclient/src/nfs.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 5e8467a64d..83d44e38a7 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,9 @@ +2008-05-30 Till Straumann + + * 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. + 2008-05-27 Joel Sherrill * libmisc/shell/shell_getchar.c: Minor change so dropping connection 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; } }