X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fxreadlink.c;h=0f5e7d26f2fcd7d27ff462160e0437592d4cf6db;hb=3feb3145b632af0fd4349f5685a19ec58fa0fb75;hp=c38e2d3aad892630f37d84b906b272f93ad7f925;hpb=3bd23802ad65a4379e0c97d736dc6c2ab2d37f1d;p=gnulib.git diff --git a/lib/xreadlink.c b/lib/xreadlink.c index c38e2d3aa..0f5e7d26f 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);