From 56dd03e0f2b17e703ba8daad8bc9ab21a761a461 Mon Sep 17 00:00:00 2001 From: Edward Tomasz Napierala Date: Fri, 12 Mar 2021 15:31:37 +0000 Subject: [PATCH] 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 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) --- sys/compat/linux/linux_getcwd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/compat/linux/linux_getcwd.c b/sys/compat/linux/linux_getcwd.c index c39e69c4e70..4917641be5e 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) -- 2.45.0