The gnu extension to have realpath() malloc its buffer when handed a NULL
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 19 May 2006 10:57:02 +0000 (10:57 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 19 May 2006 10:57:02 +0000 (10:57 -0000)
isn't implemented in uClibc, so we can't use it.
(r15092 from trunk plus coding-style fix for the patch)

debianutils/readlink.c

index 83abdbfa6049fde18e6701783e2a4c854e9265f6..8495ee5324a6a3964e0cec1bc5440eded8ede36f 100644 (file)
@@ -25,7 +25,7 @@ int readlink_main(int argc, char **argv)
                        bb_show_usage();
 
        if (opt & READLINK_FLAG_f)
-               buf = realpath(argv[optind], NULL);
+               buf = realpath(argv[optind], bb_common_bufsiz1);
        else
                buf = xreadlink(argv[ENABLE_FEATURE_READLINK_FOLLOW ? optind : 1]);
 
@@ -33,7 +33,8 @@ int readlink_main(int argc, char **argv)
                return EXIT_FAILURE;
        puts(buf);
 
-       if (ENABLE_FEATURE_CLEAN_UP) free(buf);
+       if (ENABLE_FEATURE_CLEAN_UP && buf != bb_common_bufsiz1)
+               free(buf);
 
        return EXIT_SUCCESS;
 }