aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>2014-08-20 01:14:04 -0400
committerSerge Hallyn <serge.hallyn@ubuntu.com>2014-08-26 22:52:09 -0400
commit8fe7a268b18ebc89203c766b020b9e32f1cfeebf (patch)
treede9400f69db6da34c7e3017c1a6bc8ca9f763e04 /security
parent52addcf9d6669fa439387610bc65c92fa0980cef (diff)
tomoyo: Fix pathname calculation breakage.
Commit 7177a9c4b509 ("fs: call rename2 if exists") changed "struct inode_operations"->rename == NULL if "struct inode_operations"->rename2 != NULL . TOMOYO needs to check for both ->rename and ->rename2 , or a system on (e.g.) ext4 filesystem won't boot. Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Diffstat (limited to 'security')
-rw-r--r--security/tomoyo/realpath.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c
index a3386d119425..bed745c8b1a3 100644
--- a/security/tomoyo/realpath.c
+++ b/security/tomoyo/realpath.c
@@ -173,7 +173,7 @@ static char *tomoyo_get_local_path(struct dentry *dentry, char * const buffer,
173 * Use filesystem name if filesystem does not support rename() 173 * Use filesystem name if filesystem does not support rename()
174 * operation. 174 * operation.
175 */ 175 */
176 if (!inode->i_op->rename) 176 if (!inode->i_op->rename && !inode->i_op->rename2)
177 goto prepend_filesystem_name; 177 goto prepend_filesystem_name;
178 } 178 }
179 /* Prepend device name. */ 179 /* Prepend device name. */
@@ -282,7 +282,8 @@ char *tomoyo_realpath_from_path(struct path *path)
282 * Get local name for filesystems without rename() operation 282 * Get local name for filesystems without rename() operation
283 * or dentry without vfsmount. 283 * or dentry without vfsmount.
284 */ 284 */
285 if (!path->mnt || !inode->i_op->rename) 285 if (!path->mnt ||
286 (!inode->i_op->rename && !inode->i_op->rename2))
286 pos = tomoyo_get_local_path(path->dentry, buf, 287 pos = tomoyo_get_local_path(path->dentry, buf,
287 buf_len - 1); 288 buf_len - 1);
288 /* Get absolute name for the rest. */ 289 /* Get absolute name for the rest. */