From: Denys Vlasenko Date: Sun, 16 Mar 2014 19:53:40 +0000 (+0100) Subject: libbb: fix a bad check for uclibc >= 0.9.31 X-Git-Tag: 1_23_0~149 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c50493854a78b28b3642a402d1a0bbd57c1b3c1b;p=oweals%2Fbusybox.git libbb: fix a bad check for uclibc >= 0.9.31 Signed-off-by: Denys Vlasenko --- 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);