Loading fs/compat.c +14 −19 Original line number Diff line number Diff line Loading @@ -871,12 +871,12 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd, { int error; struct file *file; int fput_needed; struct compat_readdir_callback buf; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.result = 0; buf.dirent = dirent; Loading @@ -885,8 +885,7 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd, if (buf.result) error = buf.result; fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -953,16 +952,15 @@ asmlinkage long compat_sys_getdents(unsigned int fd, struct file * file; struct compat_linux_dirent __user * lastdirent; struct compat_getdents_callback buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -979,8 +977,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -1041,16 +1038,15 @@ asmlinkage long compat_sys_getdents64(unsigned int fd, struct file * file; struct linux_dirent64 __user * lastdirent; struct compat_getdents_callback64 buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -1068,8 +1064,7 @@ asmlinkage long compat_sys_getdents64(unsigned int fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } #endif /* ! __ARCH_OMIT_COMPAT_SYS_GETDENTS64 */ Loading fs/readdir.c +14 −19 Original line number Diff line number Diff line Loading @@ -108,11 +108,11 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd, int error; struct file * file; struct readdir_callback buf; int fput_needed; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.result = 0; buf.dirent = dirent; Loading @@ -121,8 +121,7 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd, if (buf.result) error = buf.result; fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -195,16 +194,15 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd, struct file * file; struct linux_dirent __user * lastdirent; struct getdents_callback buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -221,8 +219,7 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -278,16 +275,15 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd, struct file * file; struct linux_dirent64 __user * lastdirent; struct getdents_callback64 buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -305,7 +301,6 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } Loading
fs/compat.c +14 −19 Original line number Diff line number Diff line Loading @@ -871,12 +871,12 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd, { int error; struct file *file; int fput_needed; struct compat_readdir_callback buf; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.result = 0; buf.dirent = dirent; Loading @@ -885,8 +885,7 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd, if (buf.result) error = buf.result; fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -953,16 +952,15 @@ asmlinkage long compat_sys_getdents(unsigned int fd, struct file * file; struct compat_linux_dirent __user * lastdirent; struct compat_getdents_callback buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -979,8 +977,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -1041,16 +1038,15 @@ asmlinkage long compat_sys_getdents64(unsigned int fd, struct file * file; struct linux_dirent64 __user * lastdirent; struct compat_getdents_callback64 buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -1068,8 +1064,7 @@ asmlinkage long compat_sys_getdents64(unsigned int fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } #endif /* ! __ARCH_OMIT_COMPAT_SYS_GETDENTS64 */ Loading
fs/readdir.c +14 −19 Original line number Diff line number Diff line Loading @@ -108,11 +108,11 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd, int error; struct file * file; struct readdir_callback buf; int fput_needed; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.result = 0; buf.dirent = dirent; Loading @@ -121,8 +121,7 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd, if (buf.result) error = buf.result; fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -195,16 +194,15 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd, struct file * file; struct linux_dirent __user * lastdirent; struct getdents_callback buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -221,8 +219,7 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; } Loading Loading @@ -278,16 +275,15 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd, struct file * file; struct linux_dirent64 __user * lastdirent; struct getdents_callback64 buf; int fput_needed; int error; error = -EFAULT; if (!access_ok(VERIFY_WRITE, dirent, count)) goto out; return -EFAULT; error = -EBADF; file = fget(fd); file = fget_light(fd, &fput_needed); if (!file) goto out; return -EBADF; buf.current_dir = dirent; buf.previous = NULL; Loading @@ -305,7 +301,6 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd, else error = count - buf.count; } fput(file); out: fput_light(file, fput_needed); return error; }