about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2013-05-16 16:27:37 -0400
committerRich Felker <dalias@aerifal.cx>2013-05-16 16:27:37 -0400
commit1a70198b3e5a7866bf4c62d090d8a8e28b12521a (patch)
tree1d4032932900574ea2b0309cd1ffc8cbd8aed5ea /src
parente216951f509b71da193da2fc63e25b998740d58b (diff)
downloadmusl-1a70198b3e5a7866bf4c62d090d8a8e28b12521a.tar.gz
musl-1a70198b3e5a7866bf4c62d090d8a8e28b12521a.tar.xz
musl-1a70198b3e5a7866bf4c62d090d8a8e28b12521a.zip
fix mknod and mknodat to accept large dev_t values
support for these was recently added to sysmacros.h. note that the
syscall argument is a long, despite dev_t being 64-bit, so on 32-bit
archs the high bits will be lost. it appears the high bits are just
glibc silliness and not part of the kernel api, anyway, but it's nice
that we have them there for future expansion if needed.
Diffstat (limited to 'src')
-rw-r--r--src/stat/mknod.c5
-rw-r--r--src/stat/mknodat.c2
2 files changed, 2 insertions, 5 deletions
diff --git a/src/stat/mknod.c b/src/stat/mknod.c
index 90c6a1ca..c3196571 100644
--- a/src/stat/mknod.c
+++ b/src/stat/mknod.c
@@ -3,8 +3,5 @@
 
 int mknod(const char *path, mode_t mode, dev_t dev)
 {
-	/* since dev_t is system-specific anyway we defer to the idiotic
-	 * legacy-compatible bitfield mapping of the type.. at least we've
-	 * made it large enough to leave space for future expansion.. */
-	return syscall(SYS_mknod, path, mode, dev & 0xffff);
+	return syscall(SYS_mknod, path, mode, dev);
 }
diff --git a/src/stat/mknodat.c b/src/stat/mknodat.c
index 63cacd58..7c97c91a 100644
--- a/src/stat/mknodat.c
+++ b/src/stat/mknodat.c
@@ -3,5 +3,5 @@
 
 int mknodat(int fd, const char *path, mode_t mode, dev_t dev)
 {
-	return syscall(SYS_mknodat, fd, path, mode, dev & 0xffff);
+	return syscall(SYS_mknodat, fd, path, mode, dev);
 }