qemu_mknodat() is expected to behave according to its POSIX API, and therefore should always return exactly -1 on any error, and errno should be set for the actual error code.
Signed-off-by: Christian Schoenebeck <qemu_...@crudebyte.com> Reviewed-by: Greg Kurz <gr...@kaod.org> Reviewed-by: Akihiko Odaki <akihiko.od...@gmail.com> Message-Id: <c714b5e1cae225ab7575242c45ee0fe4945eb6ad.1651228001.git.qemu_...@crudebyte.com> --- hw/9pfs/9p-util-darwin.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/9pfs/9p-util-darwin.c b/hw/9pfs/9p-util-darwin.c index 619c403ba7..a5f8707bb8 100644 --- a/hw/9pfs/9p-util-darwin.c +++ b/hw/9pfs/9p-util-darwin.c @@ -124,7 +124,8 @@ int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t dev) } if (!pthread_fchdir_np) { error_report_once("pthread_fchdir_np() not available on this version of macOS"); - return -ENOTSUP; + errno = ENOTSUP; + return -1; } if (pthread_fchdir_np(dirfd) < 0) { return -1; -- 2.30.2