diff options
author | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2021-03-12 15:31:37 +0000 |
---|---|---|
committer | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2021-03-16 18:37:57 +0000 |
commit | 56dd03e0f2b17e703ba8daad8bc9ab21a761a461 (patch) | |
tree | 3bc9eedcf32a92fe299a0d5a07b5699a4c1a0b63 | |
parent | 1aa6884953a93674368b6f02377f3a24e2702a6a (diff) | |
download | src-56dd03e0f2b17e703ba8daad8bc9ab21a761a461.tar.gz src-56dd03e0f2b17e703ba8daad8bc9ab21a761a461.zip |
linux(4): make getcwd(2) return ERANGE instead of ENOMEM
For native FreeBSD binaries, the return value from __getcwd(2)
doesn't really matter, as the libc wrapper takes over and returns
the proper errno.
Approved by: re (gjb)
PR: kern/254120
Reported By: Alex S <iwtcex@gmail.com>
Reviewed By: kib
Sponsored By: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D29217
(cherry picked from commit 0dfbdd9fc269f0438ffcc31632d35234a90584ad)
(cherry picked from commit ab1a91d95872e59db3d476be4fefb0b58df3afc4)
-rw-r--r-- | sys/compat/linux/linux_getcwd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_getcwd.c b/sys/compat/linux/linux_getcwd.c index c39e69c4e707..4917641be5e5 100644 --- a/sys/compat/linux/linux_getcwd.c +++ b/sys/compat/linux/linux_getcwd.c @@ -74,6 +74,8 @@ linux_getcwd(struct thread *td, struct linux_getcwd_args *uap) buf = malloc(buflen, M_TEMP, M_WAITOK); error = vn_getcwd(buf, &retbuf, &buflen); + if (error == ENOMEM) + error = ERANGE; if (error == 0) { error = copyout(retbuf, uap->buf, buflen); if (error == 0) |