From: Paul Eggert Date: Wed, 3 Nov 2004 09:24:17 +0000 (+0000) Subject: xreadlink.c (xreadlink): AIX and HP-UX readlink return -1 X-Git-Tag: cvs-readonly~3799 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f792a03ccf327e0e80b60e6b7a013e7f89f9f5ca;p=thirdparty%2Fgnulib.git xreadlink.c (xreadlink): AIX and HP-UX readlink return -1 with errno == ERANGE if the buffer is too small. --- diff --git a/lib/xreadlink.c b/lib/xreadlink.c index c38e2d3aad..0f5e7d26f2 100644 --- a/lib/xreadlink.c +++ b/lib/xreadlink.c @@ -66,7 +66,9 @@ xreadlink (char const *filename, size_t size) ssize_t r = readlink (filename, buffer, buf_size); size_t link_length = r; - if (r < 0) + /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1 + with errno == ERANGE if the buffer is too small. */ + if (r < 0 && errno != ERANGE) { int saved_errno = errno; free (buffer);