From patchwork Mon Dec 5 17:23:37 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [4/9] fedfsd: don't return freed memory through **pathname parameter, ... Date: Mon, 05 Dec 2011 07:23:37 -0000 From: Chuck Lever X-Patchwork-Id: 129377 Message-Id: <20111205172337.7753.77748.stgit@degas.1015granger.net> To: fedfs-utils-devel@oss.oracle.com From: Jim Meyering even though upon error it will not be used. * src/fedfsd/svc.c (fedfsd_pathwalk): On an error path, don't set *pathname at all, and certainly not to a just-freed pointer. Spotted by coverity. Introduced by commit 0520ee72: "Initial commit," (March 29, 2011). Signed-off-by: Jim Meyering --- src/fedfsd/svc.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/fedfsd/svc.c b/src/fedfsd/svc.c index bbe1fa1..8ba6468 100644 --- a/src/fedfsd/svc.c +++ b/src/fedfsd/svc.c @@ -316,10 +316,12 @@ fedfsd_pathwalk(const FedFsPathName fpath, char **pathname) xlog(D_CALL, "%s: Zero-component pathname", __func__); strcat(result, "/"); retval = fedfsd_pathwalk_check_term(result); - if (retval != FEDFS_OK) + if (retval != FEDFS_OK) { free(result); + return retval; + } *pathname = result; - return retval; + return FEDFS_OK; } for (i = 0; i < fpath.FedFsPathName_len; i++) {