From d3f042817d41bbbb4daa7ef8218aa11466360c04 Mon Sep 17 00:00:00 2001 From: Simon Kadisch Date: Sat, 21 Nov 2020 15:42:17 +0100 Subject: [PATCH] unix: fix uv_fs_stat when using statx Specifically when filling the `st_rdev` field. Fixes: https://github.com/libuv/libuv/issues/3051 PR-URL: https://github.com/libuv/libuv/pull/3052 Reviewed-By: Ben Noordhuis Reviewed-By: Santiago Gimeno --- src/unix/fs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/unix/fs.c b/src/unix/fs.c index fabedb97..e326ff03 100644 --- a/src/unix/fs.c +++ b/src/unix/fs.c @@ -58,6 +58,7 @@ #if defined(__linux__) || defined(__sun) # include +# include #endif #if defined(__APPLE__) @@ -1444,12 +1445,12 @@ static int uv__fs_statx(int fd, return UV_ENOSYS; } - buf->st_dev = 256 * statxbuf.stx_dev_major + statxbuf.stx_dev_minor; + buf->st_dev = makedev(statxbuf.stx_dev_major, statxbuf.stx_dev_minor); buf->st_mode = statxbuf.stx_mode; buf->st_nlink = statxbuf.stx_nlink; buf->st_uid = statxbuf.stx_uid; buf->st_gid = statxbuf.stx_gid; - buf->st_rdev = statxbuf.stx_rdev_major; + buf->st_rdev = makedev(statxbuf.stx_rdev_major, statxbuf.stx_rdev_minor); buf->st_ino = statxbuf.stx_ino; buf->st_size = statxbuf.stx_size; buf->st_blksize = statxbuf.stx_blksize;