Skip to content

Commit 9b323d2

Browse files
author
Al Viro
committed
alpha: switch osf_mount() to strndup_user()
... same as native mount(2) is doing for devname argument. While we are at it, fix misspelling ufs_args as cdfs_args in osf_ufs_mount() - layouts are identical, so it doesn't change anything, but the current variant is confusing for no reason. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent 39537a3 commit 9b323d2

1 file changed

Lines changed: 11 additions & 23 deletions

File tree

arch/alpha/kernel/osf_sys.c

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -454,42 +454,30 @@ static int
454454
osf_ufs_mount(const char __user *dirname,
455455
struct ufs_args __user *args, int flags)
456456
{
457-
int retval;
458-
struct cdfs_args tmp;
459-
struct filename *devname;
457+
struct ufs_args tmp;
458+
char *devname __free(kfree) = NULL;
460459

461-
retval = -EFAULT;
462460
if (copy_from_user(&tmp, args, sizeof(tmp)))
463-
goto out;
464-
devname = getname(tmp.devname);
465-
retval = PTR_ERR(devname);
461+
return -EFAULT;
462+
devname = strndup_user(tmp.devname, PATH_MAX);
466463
if (IS_ERR(devname))
467-
goto out;
468-
retval = do_mount(devname->name, dirname, "ext2", flags, NULL);
469-
putname(devname);
470-
out:
471-
return retval;
464+
return PTR_ERR(devname);
465+
return do_mount(devname, dirname, "ext2", flags, NULL);
472466
}
473467

474468
static int
475469
osf_cdfs_mount(const char __user *dirname,
476470
struct cdfs_args __user *args, int flags)
477471
{
478-
int retval;
479472
struct cdfs_args tmp;
480-
struct filename *devname;
473+
char *devname __free(kfree) = NULL;
481474

482-
retval = -EFAULT;
483475
if (copy_from_user(&tmp, args, sizeof(tmp)))
484-
goto out;
485-
devname = getname(tmp.devname);
486-
retval = PTR_ERR(devname);
476+
return -EFAULT;
477+
devname = strndup_user(tmp.devname, PATH_MAX);
487478
if (IS_ERR(devname))
488-
goto out;
489-
retval = do_mount(devname->name, dirname, "iso9660", flags, NULL);
490-
putname(devname);
491-
out:
492-
return retval;
479+
return PTR_ERR(devname);
480+
return do_mount(devname, dirname, "iso9660", flags, NULL);
493481
}
494482

495483
static int

0 commit comments

Comments
 (0)