Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

Al Viro 9b323d2f 39537a33

+11 -23
+11 -23
arch/alpha/kernel/osf_sys.c
··· 454 454 osf_ufs_mount(const char __user *dirname, 455 455 struct ufs_args __user *args, int flags) 456 456 { 457 - int retval; 458 - struct cdfs_args tmp; 459 - struct filename *devname; 457 + struct ufs_args tmp; 458 + char *devname __free(kfree) = NULL; 460 459 461 - retval = -EFAULT; 462 460 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); 466 463 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); 472 466 } 473 467 474 468 static int 475 469 osf_cdfs_mount(const char __user *dirname, 476 470 struct cdfs_args __user *args, int flags) 477 471 { 478 - int retval; 479 472 struct cdfs_args tmp; 480 - struct filename *devname; 473 + char *devname __free(kfree) = NULL; 481 474 482 - retval = -EFAULT; 483 475 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); 487 478 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); 493 481 } 494 482 495 483 static int