aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 @@
1/* vi: set sw=4 ts=4: */ 1/* vi: set sw=4 ts=4: */
2/* 2/*
3 * xreadlink.c - safe implementation of readlink. 3 * xreadlink.c - safe implementation of readlink.
4 * Returns a NULL on failure... 4 * Returns a NULL on failure.
5 * 5 *
6 * Licensed under GPLv2, see file LICENSE in this source tree. 6 * Licensed under GPLv2, see file LICENSE in this source tree.
7 */ 7 */
8 8
9#include "libbb.h" 9#include "libbb.h"
10 10
11/* some systems (eg Hurd) does not have MAXSYMLINKS definition, 11/* Some systems (eg Hurd) do not have MAXSYMLINKS definition,
12 * set it to some reasonable value if it isn't defined */ 12 * set it to some reasonable value if it isn't defined */
13#ifndef MAXSYMLINKS 13#ifndef MAXSYMLINKS
14# define MAXSYMLINKS 20 14# define MAXSYMLINKS 20
@@ -108,8 +108,11 @@ char* FAST_FUNC xmalloc_readlink_or_warn(const char *path)
108 108
109char* FAST_FUNC xmalloc_realpath(const char *path) 109char* FAST_FUNC xmalloc_realpath(const char *path)
110{ 110{
111#if defined(__GLIBC__) || \ 111/* NB: uclibc also defines __GLIBC__
112 (defined(__UCLIBC__) && UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 31)) 112 * Therefore the test "if glibc, or uclibc >= 0.9.31" looks a bit weird:
113 */
114#if defined(__GLIBC__) && \
115 (!defined(__UCLIBC__) || UCLIBC_VERSION >= KERNEL_VERSION(0, 9, 31))
113 /* glibc provides a non-standard extension */ 116 /* glibc provides a non-standard extension */
114 /* new: POSIX.1-2008 specifies this behavior as well */ 117 /* new: POSIX.1-2008 specifies this behavior as well */
115 return realpath(path, NULL); 118 return realpath(path, NULL);