X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Funistd%2Ffchown.c;h=36633b0e95f3145a3cacf33958dd3862ced78b68;hb=65ea604c74f3fecbc61a266a22fdf527764995b6;hp=e1c3198a738cd2cb46f52f13f78892b81b6ab483;hpb=f89e29829029c5003450f7b58bd00fe5d1049d09;p=musl diff --git a/src/unistd/fchown.c b/src/unistd/fchown.c index e1c3198a..36633b0e 100644 --- a/src/unistd/fchown.c +++ b/src/unistd/fchown.c @@ -1,5 +1,6 @@ #include #include +#include #include "syscall.h" void __procfdname(char *, unsigned); @@ -7,7 +8,8 @@ void __procfdname(char *, unsigned); int fchown(int fd, uid_t uid, gid_t gid) { int ret = __syscall(SYS_fchown, fd, uid, gid); - if (ret != -EBADF || fd < 0) return __syscall_ret(ret); + if (ret != -EBADF || __syscall(SYS_fcntl, fd, F_GETFD) < 0) + return __syscall_ret(ret); char buf[15+3*sizeof(int)]; __procfdname(buf, fd);