aboutsummaryrefslogtreecommitdiff
path: root/libbb/xreadlink.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2014-03-16 20:53:40 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2014-03-16 20:53:40 +0100
commitc50493854a78b28b3642a402d1a0bbd57c1b3c1b (patch)
tree011b6068c3ec3b53c1df806a631cd2cda75bcc0f /libbb/xreadlink.c
parent9dbe4d054703ac96355c90bd7794d14d206e10c5 (diff)
downloadbusybox-c50493854a78b28b3642a402d1a0bbd57c1b3c1b.tar.gz
libbb: fix a bad check for uclibc >= 0.9.31
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/xreadlink.c')
-rw-r--r--libbb/xreadlink.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c
index bb63da08c..7d4cb60a5 100644
--- a/libbb/xreadlink.c
+++ b/libbb/xreadlink.c
@@ -1,14 +1,14 @@
/* vi: set sw=4 ts=4: */
/*
* xreadlink.c - safe implementation of readlink.
- * Returns a NULL on failure...
+ * Returns a NULL on failure.
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
#include "libbb.h"
-/* some systems (eg Hurd) does not have MAXSYMLINKS definition,
+/* Some systems (eg Hurd) do not have MAXSYMLINKS definition,
* set it to some reasonable value if it isn't defined */
#ifndef MAXSYMLINKS
# define MAXSYMLINKS 20
@@ -108,8 +108,11 @@ char* FAST_FUNC xmalloc_readlink_or_warn(const char *path)
char* FAST_FUNC xmalloc_realpath(const char *path)
{
-#if defined(__GLIBC__) || \
- (defined(__UCLIBC__) && UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 31))
+/* NB: uclibc also defines __GLIBC__
+ * Therefore the test "if glibc, or uclibc >= 0.9.31" looks a bit weird:
+ */
+#if defined(__GLIBC__) && \
+ (!defined(__UCLIBC__) || UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 31))
/* glibc provides a non-standard extension */
/* new: POSIX.1-2008 specifies this behavior as well */
return realpath(path, NULL);