summaryrefslogtreecommitdiff
path: root/lib/xreadlink.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2001-09-03 18:25:58 +0000
committerJim Meyering <jim@meyering.net>2001-09-03 18:25:58 +0000
commit0bd7218d197c02dcc5706bc1a7f5c92189dc20ca (patch)
tree9e16579129423ddaa201ce1896b69bc20bd49a74 /lib/xreadlink.c
parent8d7314ae9fde9984d9cebe27a96806e02f77be64 (diff)
downloadgnulib-0bd7218d197c02dcc5706bc1a7f5c92189dc20ca.tar.gz
(xreadlink): Preserve errno around `free' during failure.
Diffstat (limited to 'lib/xreadlink.c')
-rw-r--r--lib/xreadlink.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/xreadlink.c b/lib/xreadlink.c
index 881b794f18..a01833381a 100644
--- a/lib/xreadlink.c
+++ b/lib/xreadlink.c
@@ -58,7 +58,9 @@ xreadlink (char const *filename, size_t *link_length_arg)
link_length = readlink (filename, buffer, buf_size);
if (link_length < 0)
{
+ int saved_errno = errno;
free (buffer);
+ errno = saved_errno;
return NULL;
}
if (link_length < buf_size)