Loading fs/fcntl.c +17 −25 Original line number Diff line number Diff line Loading @@ -442,28 +442,24 @@ static int check_fcntl_cmd(unsigned cmd) SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) { struct file *filp; int fput_needed; long err = -EBADF; filp = fget_raw(fd); filp = fget_raw_light(fd, &fput_needed); if (!filp) goto out; if (unlikely(filp->f_mode & FMODE_PATH)) { if (!check_fcntl_cmd(cmd)) { fput(filp); goto out; } if (!check_fcntl_cmd(cmd)) goto out1; } err = security_file_fcntl(filp, cmd, arg); if (err) { fput(filp); return err; } if (!err) err = do_fcntl(fd, cmd, arg, filp); fput(filp); out1: fput_light(filp, fput_needed); out: return err; } Loading @@ -473,26 +469,21 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd, unsigned long, arg) { struct file * filp; long err; long err = -EBADF; int fput_needed; err = -EBADF; filp = fget_raw(fd); filp = fget_raw_light(fd, &fput_needed); if (!filp) goto out; if (unlikely(filp->f_mode & FMODE_PATH)) { if (!check_fcntl_cmd(cmd)) { fput(filp); goto out; } if (!check_fcntl_cmd(cmd)) goto out1; } err = security_file_fcntl(filp, cmd, arg); if (err) { fput(filp); return err; } err = -EBADF; if (err) goto out1; switch (cmd) { case F_GETLK64: Loading @@ -507,7 +498,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd, err = do_fcntl(fd, cmd, arg, filp); break; } fput(filp); out1: fput_light(filp, fput_needed); out: return err; } Loading Loading
fs/fcntl.c +17 −25 Original line number Diff line number Diff line Loading @@ -442,28 +442,24 @@ static int check_fcntl_cmd(unsigned cmd) SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) { struct file *filp; int fput_needed; long err = -EBADF; filp = fget_raw(fd); filp = fget_raw_light(fd, &fput_needed); if (!filp) goto out; if (unlikely(filp->f_mode & FMODE_PATH)) { if (!check_fcntl_cmd(cmd)) { fput(filp); goto out; } if (!check_fcntl_cmd(cmd)) goto out1; } err = security_file_fcntl(filp, cmd, arg); if (err) { fput(filp); return err; } if (!err) err = do_fcntl(fd, cmd, arg, filp); fput(filp); out1: fput_light(filp, fput_needed); out: return err; } Loading @@ -473,26 +469,21 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd, unsigned long, arg) { struct file * filp; long err; long err = -EBADF; int fput_needed; err = -EBADF; filp = fget_raw(fd); filp = fget_raw_light(fd, &fput_needed); if (!filp) goto out; if (unlikely(filp->f_mode & FMODE_PATH)) { if (!check_fcntl_cmd(cmd)) { fput(filp); goto out; } if (!check_fcntl_cmd(cmd)) goto out1; } err = security_file_fcntl(filp, cmd, arg); if (err) { fput(filp); return err; } err = -EBADF; if (err) goto out1; switch (cmd) { case F_GETLK64: Loading @@ -507,7 +498,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd, err = do_fcntl(fd, cmd, arg, filp); break; } fput(filp); out1: fput_light(filp, fput_needed); out: return err; } Loading