The gnu extension to have realpath() malloc its buffer when handed a NULL
isn't implemented in uClibc, so we can't use it.
(r15092 from trunk plus coding-style fix for the patch)
diff --git a/debianutils/readlink.c b/debianutils/readlink.c
index 83abdbf..8495ee5 100644
--- a/debianutils/readlink.c
+++ b/debianutils/readlink.c
@@ -25,7 +25,7 @@
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 @@
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;
}