Use the new inode_get_ino() helper to log the user space's view of
inode's numbers instead of the private kernel values.

Cc: Kentaro Takeda <[email protected]>
Cc: Tetsuo Handa <[email protected]>
Signed-off-by: Mickaël Salaün <[email protected]>
---

Because of the required type changes, there might be some side effects.
Please review carefully.
---
 security/tomoyo/common.h    | 4 ++--
 security/tomoyo/condition.c | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/security/tomoyo/common.h b/security/tomoyo/common.h
index 0e8e2e959aef..c670a8e3c351 100644
--- a/security/tomoyo/common.h
+++ b/security/tomoyo/common.h
@@ -524,7 +524,7 @@ struct tomoyo_name_union {
 
 /* Structure for holding a number. */
 struct tomoyo_number_union {
-       unsigned long values[2];
+       u64 values[2];
        struct tomoyo_group *group; /* Maybe NULL. */
        /* One of values in "enum tomoyo_value_type". */
        u8 value_type[2];
@@ -567,7 +567,7 @@ struct tomoyo_address_group {
 struct tomoyo_mini_stat {
        kuid_t uid;
        kgid_t gid;
-       ino_t ino;
+       u64 ino;
        umode_t mode;
        dev_t dev;
        dev_t rdev;
diff --git a/security/tomoyo/condition.c b/security/tomoyo/condition.c
index f8bcc083bb0d..a44ea574fd89 100644
--- a/security/tomoyo/condition.c
+++ b/security/tomoyo/condition.c
@@ -741,7 +741,7 @@ void tomoyo_get_attributes(struct tomoyo_obj_info *obj)
 
                        stat->uid  = inode->i_uid;
                        stat->gid  = inode->i_gid;
-                       stat->ino  = inode->i_ino;
+                       stat->ino  = inode_get_ino(inode);
                        stat->mode = inode->i_mode;
                        stat->dev  = inode->i_sb->s_dev;
                        stat->rdev = inode->i_rdev;
@@ -766,8 +766,8 @@ bool tomoyo_condition(struct tomoyo_request_info *r,
                      const struct tomoyo_condition *cond)
 {
        u32 i;
-       unsigned long min_v[2] = { 0, 0 };
-       unsigned long max_v[2] = { 0, 0 };
+       u64 min_v[2] = { 0, 0 };
+       u64 max_v[2] = { 0, 0 };
        const struct tomoyo_condition_element *condp;
        const struct tomoyo_number_union *numbers_p;
        const struct tomoyo_name_union *names_p;
@@ -834,7 +834,7 @@ bool tomoyo_condition(struct tomoyo_request_info *r,
                /* Check numeric or bit-op expressions. */
                for (j = 0; j < 2; j++) {
                        const u8 index = j ? right : left;
-                       unsigned long value = 0;
+                       u64 value = 0;
 
                        switch (index) {
                        case TOMOYO_TASK_UID:
-- 
2.46.1


Reply via email to