Reduce path_lookup() abuses
... use kern_path() where possible [folded a fix from rdd] Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -1720,14 +1720,14 @@ static bool tomoyo_policy_loader_exists(void)
|
||||
* policies are not loaded yet.
|
||||
* Thus, let do_execve() call this function everytime.
|
||||
*/
|
||||
struct nameidata nd;
|
||||
struct path path;
|
||||
|
||||
if (path_lookup(tomoyo_loader, LOOKUP_FOLLOW, &nd)) {
|
||||
if (kern_path(tomoyo_loader, LOOKUP_FOLLOW, &path)) {
|
||||
printk(KERN_INFO "Not activating Mandatory Access Control now "
|
||||
"since %s doesn't exist.\n", tomoyo_loader);
|
||||
return false;
|
||||
}
|
||||
path_put(&nd.path);
|
||||
path_put(&path);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -165,11 +165,11 @@ char *tomoyo_realpath_from_path(struct path *path)
|
||||
*/
|
||||
char *tomoyo_realpath(const char *pathname)
|
||||
{
|
||||
struct nameidata nd;
|
||||
struct path path;
|
||||
|
||||
if (pathname && path_lookup(pathname, LOOKUP_FOLLOW, &nd) == 0) {
|
||||
char *buf = tomoyo_realpath_from_path(&nd.path);
|
||||
path_put(&nd.path);
|
||||
if (pathname && kern_path(pathname, LOOKUP_FOLLOW, &path) == 0) {
|
||||
char *buf = tomoyo_realpath_from_path(&path);
|
||||
path_put(&path);
|
||||
return buf;
|
||||
}
|
||||
return NULL;
|
||||
@@ -184,11 +184,11 @@ char *tomoyo_realpath(const char *pathname)
|
||||
*/
|
||||
char *tomoyo_realpath_nofollow(const char *pathname)
|
||||
{
|
||||
struct nameidata nd;
|
||||
struct path path;
|
||||
|
||||
if (pathname && path_lookup(pathname, 0, &nd) == 0) {
|
||||
char *buf = tomoyo_realpath_from_path(&nd.path);
|
||||
path_put(&nd.path);
|
||||
if (pathname && kern_path(pathname, 0, &path) == 0) {
|
||||
char *buf = tomoyo_realpath_from_path(&path);
|
||||
path_put(&path);
|
||||
return buf;
|
||||
}
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user