tomoyo: use u64 for holding inode->i_ino value
TOMOYO is treating numeric fields (including inode->i_ino) as "unsigned
long". Now that commit 0b2600f81c ("treewide: change inode->i_ino from
unsigned long to u64") went upstream, update affected portions in TOMOYO.
While an administrator might write a rule that compares inode->i_ino with
an immediate value, this patch changes type of variable for inode->i_ino
to "u64" but does not change type of variable for the corresponding
immediate value to "u64" due to the following reasons.
It is likely that rules that compare inode->i_ino are for testing whether
the directories involved in e.g. rename() operation are the same (i.e.
comparison between two inode->i_ino values rather than one inode->i_ino
value and one immediate value).
It unlikely makes sense to compare inode->i_ino with an immediate value
larger than UINT_MAX.
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
master
parent
028ef9c96e
commit
8fc1ad9007
|
|
@ -195,21 +195,19 @@ static char *tomoyo_print_header(struct tomoyo_request_info *r)
|
||||||
if (i & 1) {
|
if (i & 1) {
|
||||||
pos += snprintf(buffer + pos,
|
pos += snprintf(buffer + pos,
|
||||||
tomoyo_buffer_len - 1 - pos,
|
tomoyo_buffer_len - 1 - pos,
|
||||||
" path%u.parent={ uid=%u gid=%u ino=%lu perm=0%o }",
|
" path%u.parent={ uid=%u gid=%u ino=%llu perm=0%o }",
|
||||||
(i >> 1) + 1,
|
(i >> 1) + 1,
|
||||||
from_kuid(&init_user_ns, stat->uid),
|
from_kuid(&init_user_ns, stat->uid),
|
||||||
from_kgid(&init_user_ns, stat->gid),
|
from_kgid(&init_user_ns, stat->gid),
|
||||||
(unsigned long)stat->ino,
|
stat->ino, stat->mode & S_IALLUGO);
|
||||||
stat->mode & S_IALLUGO);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pos += snprintf(buffer + pos, tomoyo_buffer_len - 1 - pos,
|
pos += snprintf(buffer + pos, tomoyo_buffer_len - 1 - pos,
|
||||||
" path%u={ uid=%u gid=%u ino=%lu major=%u minor=%u perm=0%o type=%s",
|
" path%u={ uid=%u gid=%u ino=%llu major=%u minor=%u perm=0%o type=%s",
|
||||||
(i >> 1) + 1,
|
(i >> 1) + 1,
|
||||||
from_kuid(&init_user_ns, stat->uid),
|
from_kuid(&init_user_ns, stat->uid),
|
||||||
from_kgid(&init_user_ns, stat->gid),
|
from_kgid(&init_user_ns, stat->gid),
|
||||||
(unsigned long)stat->ino,
|
stat->ino, MAJOR(dev), MINOR(dev),
|
||||||
MAJOR(dev), MINOR(dev),
|
|
||||||
mode & S_IALLUGO, tomoyo_filetype(mode));
|
mode & S_IALLUGO, tomoyo_filetype(mode));
|
||||||
if (S_ISCHR(mode) || S_ISBLK(mode)) {
|
if (S_ISCHR(mode) || S_ISBLK(mode)) {
|
||||||
dev = stat->rdev;
|
dev = stat->rdev;
|
||||||
|
|
|
||||||
|
|
@ -567,7 +567,7 @@ struct tomoyo_address_group {
|
||||||
struct tomoyo_mini_stat {
|
struct tomoyo_mini_stat {
|
||||||
kuid_t uid;
|
kuid_t uid;
|
||||||
kgid_t gid;
|
kgid_t gid;
|
||||||
ino_t ino;
|
u64 ino;
|
||||||
umode_t mode;
|
umode_t mode;
|
||||||
dev_t dev;
|
dev_t dev;
|
||||||
dev_t rdev;
|
dev_t rdev;
|
||||||
|
|
|
||||||
|
|
@ -766,8 +766,8 @@ bool tomoyo_condition(struct tomoyo_request_info *r,
|
||||||
const struct tomoyo_condition *cond)
|
const struct tomoyo_condition *cond)
|
||||||
{
|
{
|
||||||
u32 i;
|
u32 i;
|
||||||
unsigned long min_v[2] = { 0, 0 };
|
u64 min_v[2] = { 0, 0 };
|
||||||
unsigned long max_v[2] = { 0, 0 };
|
u64 max_v[2] = { 0, 0 };
|
||||||
const struct tomoyo_condition_element *condp;
|
const struct tomoyo_condition_element *condp;
|
||||||
const struct tomoyo_number_union *numbers_p;
|
const struct tomoyo_number_union *numbers_p;
|
||||||
const struct tomoyo_name_union *names_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. */
|
/* Check numeric or bit-op expressions. */
|
||||||
for (j = 0; j < 2; j++) {
|
for (j = 0; j < 2; j++) {
|
||||||
const u8 index = j ? right : left;
|
const u8 index = j ? right : left;
|
||||||
unsigned long value = 0;
|
u64 value = 0;
|
||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case TOMOYO_TASK_UID:
|
case TOMOYO_TASK_UID:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue