diff options
Diffstat (limited to 'readlink.c')
-rw-r--r-- | readlink.c | 16 |
1 files changed, 6 insertions, 10 deletions
@@ -30,21 +30,17 @@ int readlink_main(int argc, char **argv) { char *buf = NULL; - int bufsize = 128, size = 128; + + /* no options, no getopt */ if (argc != 2) show_usage(); - while (bufsize < size + 1) { - bufsize *= 2; - buf = xrealloc(buf, bufsize); - size = readlink(argv[1], buf, bufsize); - if (size == -1) - perror_msg_and_die("%s", argv[1]); - } - - buf[size] = '\0'; + buf = xreadlink(argv[1]); puts(buf); +#ifdef BB_FEATURE_CLEAN_UP + free(buf); +#endif return EXIT_SUCCESS; } |