aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/realpath.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/coreutils/realpath.c b/coreutils/realpath.c
index 28906ba55..90a71ed7d 100644
--- a/coreutils/realpath.c
+++ b/coreutils/realpath.c
@@ -17,30 +17,20 @@ int realpath_main(int argc UNUSED_PARAM, char **argv)
{
int retval = EXIT_SUCCESS;
-#if PATH_MAX > (BUFSIZ+1)
- RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX);
-# define resolved_path_MUST_FREE 1
-#else
-#define resolved_path bb_common_bufsiz1
-# define resolved_path_MUST_FREE 0
-#endif
-
if (!*++argv) {
bb_show_usage();
}
do {
- if (realpath(*argv, resolved_path) != NULL) {
+ char *resolved_path = xmalloc_realpath(*argv);
+ if (resolved_path != NULL) {
puts(resolved_path);
+ free(resolved_path);
} else {
retval = EXIT_FAILURE;
bb_simple_perror_msg(*argv);
}
} while (*++argv);
-#if ENABLE_FEATURE_CLEAN_UP && resolved_path_MUST_FREE
- RELEASE_CONFIG_BUFFER(resolved_path);
-#endif
-
fflush_stdout_and_exit(retval);
}