From 9bd8d0c23e867238bad53b04a029f71db9b88c3f Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Thu, 8 Nov 2007 21:11:43 +0000 Subject: - commentary fixes - use common exit sequence for failure path: text data bss dec hex filename 308 0 0 308 134 libbb/xreadlink.o.pgf 296 0 0 296 128 libbb/xreadlink.o --- libbb/xreadlink.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'libbb/xreadlink.c') diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c index a5f7eb8be..0b6eb05f3 100644 --- a/libbb/xreadlink.c +++ b/libbb/xreadlink.c @@ -8,7 +8,7 @@ /* * NOTE: This function returns a malloced char* that you will have to free - * yourself. You have been warned. + * yourself. */ char *xmalloc_readlink(const char *path) { @@ -33,14 +33,14 @@ char *xmalloc_readlink(const char *path) } /* - * this routine is not the same as realpath(), which - * canonicalizes the given path completely. this routine only - * follows trailing symlinks until a real file is reached, and - * returns its name. if the path ends in a dangling link, or if - * the target doesn't exist, the path is returned in any case. - * intermediate symlinks in the path are not expanded -- only + * This routine is not the same as realpath(), which + * canonicalizes the given path completely. This routine only + * follows trailing symlinks until a real file is reached and + * returns its name. If the path ends in a dangling link or if + * the target doesn't exist, the path is returned in any case. + * Intermediate symlinks in the path are not expanded -- only * those at the tail. - * a malloced char* is returned, which must be freed by the caller. + * A malloced char* is returned, which must be freed by the caller. */ char *xmalloc_follow_symlinks(const char *path) { @@ -60,12 +60,12 @@ char *xmalloc_follow_symlinks(const char *path) /* not a symlink, or doesn't exist */ if (errno == EINVAL || errno == ENOENT) return buf; - free(buf); - return NULL; - } + goto free_buf_ret_null; + } if (!--looping) { free(linkpath); +free_buf_ret_null: free(buf); return NULL; } -- cgit v1.2.3