# HG changeset patch # User Paul Eggert # Date 1099473857 0 # Node ID 21f9e658d03201aac18b72c7f7b9eaa1b74d928e # Parent c008e99bcbabe82148a60f8fb36e15a492cb3fc4 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 --- a/lib/xreadlink.c +++ b/lib/xreadlink.c @@ -66,7 +66,9 @@ 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);