| /* BB_AUDIT SUSv3 N/A -- Apparently a busybox extension. */ |
| /* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org) |
| * Now does proper error checking on output and returns a failure exit code |
| * if one or more paths cannot be resolved. |
| * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
| int realpath_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
| int realpath_main(int argc ATTRIBUTE_UNUSED, char **argv) |
| int retval = EXIT_SUCCESS; |
| #if PATH_MAX > (BUFSIZ+1) |
| RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX); |
| # define resolved_path_MUST_FREE 1 |
| #define resolved_path bb_common_bufsiz1 |
| # define resolved_path_MUST_FREE 0 |
| if (realpath(*argv, resolved_path) != NULL) { |
| bb_simple_perror_msg(*argv); |
| #if ENABLE_FEATURE_CLEAN_UP && resolved_path_MUST_FREE |
| RELEASE_CONFIG_BUFFER(resolved_path); |
| fflush_stdout_and_exit(retval); |