From e1e330866c322a625b5c7e766cb2b428022ae824 Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Fri, 18 Jul 2003 18:34:53 -0700 Subject: [PATCH] [PATCH] janitor: unchecked copy/put_user in umsdos ioctl author: Daniele Bellucci Fix a series of unchecked copy/put_user()s in umsdos ioctl. --- fs/umsdos/ioctl.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/fs/umsdos/ioctl.c b/fs/umsdos/ioctl.c index 323c2dbcccd08..fc300030afd12 100644 --- a/fs/umsdos/ioctl.c +++ b/fs/umsdos/ioctl.c @@ -4,6 +4,10 @@ * Written 1993 by Jacques Gelinas * * Extended MS-DOS ioctl directory handling functions + * + * Changes: + * 11/07/2003 Daniele Bellucci + * - audit copy_to_user/put_user in umsdos_ioctl_fill. */ #include @@ -36,11 +40,12 @@ static int umsdos_ioctl_fill ( struct UMSDOS_DIR_ONCE *d = (struct UMSDOS_DIR_ONCE *) buf; if (d->count == 0) { - copy_to_user (d->ent->d_name, name, name_len); - put_user ('\0', d->ent->d_name + name_len); - put_user (name_len, &d->ent->d_reclen); - put_user (ino, &d->ent->d_ino); - put_user (offset, &d->ent->d_off); + if (copy_to_user (d->ent->d_name, name, name_len) || + put_user ('\0', d->ent->d_name + name_len) || + put_user (name_len, &d->ent->d_reclen) || + put_user (ino, &d->ent->d_ino) || + put_user (offset, &d->ent->d_off)) + return -EFAULT; d->count = 1; ret = 0; } -- 2.53.0