aboutsummaryrefslogtreecommitdiff
path: root/libbb/xreadlink.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2009-03-21 19:11:23 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2009-03-21 19:11:23 +0000
commit3a014b85dc57a88b5e1eb006a2fa3062f4bebc8f (patch)
tree6befbfaa357218f40a809dc6135f621e0f2fc365 /libbb/xreadlink.c
parent05af832097848cbc0656e687fc4a07525c2de513 (diff)
downloadbusybox-3a014b85dc57a88b5e1eb006a2fa3062f4bebc8f.tar.gz
ls: make readlink error to not disrupt output (try ls -l /proc/self/fd).
libbb: make xmalloc_readlink_or_warn warning more specific. function old new delta xmalloc_readlink_or_warn 33 61 +28 showfiles 1495 1460 -35 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 28/-35) Total: -7 bytes
Diffstat (limited to 'libbb/xreadlink.c')
-rw-r--r--libbb/xreadlink.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c
index 6bff4beae..8d232f16b 100644
--- a/libbb/xreadlink.c
+++ b/libbb/xreadlink.c
@@ -91,7 +91,11 @@ char* FAST_FUNC xmalloc_readlink_or_warn(const char *path)
char *buf = xmalloc_readlink(path);
if (!buf) {
/* EINVAL => "file: Invalid argument" => puzzled user */
- bb_error_msg("%s: cannot read link (not a symlink?)", path);
+ const char *errmsg = "not a symlink";
+ int err = errno;
+ if (err != EINVAL)
+ errmsg = strerror(err);
+ bb_error_msg("%s: cannot read link: %s", path, errmsg);
}
return buf;
}