2023-07-28 16:16:24

by Christian Göttsche

[permalink] [raw]
Subject: [PATCH v2 7/9] selinux: avoid implicit conversions in selinuxfs code

Use umode_t as parameter type for sel_make_inode(), which assigns the
value to the member i_mode of struct inode.

Use identical type for loop iterator.

Signed-off-by: Christian Göttsche <[email protected]>
---
v2: avoid declarations in init-clauses of for loops
---
security/selinux/selinuxfs.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
index b969e87fd870..7d7931d1758e 100644
--- a/security/selinux/selinuxfs.c
+++ b/security/selinux/selinuxfs.c
@@ -97,7 +97,7 @@ static int selinux_fs_info_create(struct super_block *sb)
static void selinux_fs_info_free(struct super_block *sb)
{
struct selinux_fs_info *fsi = sb->s_fs_info;
- int i;
+ unsigned int i;

if (fsi) {
for (i = 0; i < fsi->bool_num; i++)
@@ -1075,8 +1075,8 @@ static ssize_t sel_write_user(struct file *file, char *buf, size_t size)
u32 sid, *sids = NULL;
ssize_t length;
char *newcon;
- int i, rc;
- u32 len, nsids;
+ int rc;
+ u32 i, len, nsids;

length = avc_has_perm(current_sid(), SECINITSID_SECURITY,
SECCLASS_SECURITY, SECURITY__COMPUTE_USER,
@@ -1192,7 +1192,7 @@ static ssize_t sel_write_member(struct file *file, char *buf, size_t size)
return length;
}

-static struct inode *sel_make_inode(struct super_block *sb, int mode)
+static struct inode *sel_make_inode(struct super_block *sb, umode_t mode)
{
struct inode *ret = new_inode(sb);

@@ -1613,7 +1613,6 @@ static int sel_make_avc_files(struct dentry *dir)
{
struct super_block *sb = dir->d_sb;
struct selinux_fs_info *fsi = sb->s_fs_info;
- int i;
static const struct tree_descr files[] = {
{ "cache_threshold",
&sel_avc_cache_threshold_ops, S_IRUGO|S_IWUSR },
@@ -1623,7 +1622,7 @@ static int sel_make_avc_files(struct dentry *dir)
#endif
};

- for (i = 0; i < ARRAY_SIZE(files); i++) {
+ for (u32 i = 0; i < ARRAY_SIZE(files); i++) {
struct inode *inode;
struct dentry *dentry;

@@ -1649,7 +1648,7 @@ static int sel_make_ss_files(struct dentry *dir)
{
struct super_block *sb = dir->d_sb;
struct selinux_fs_info *fsi = sb->s_fs_info;
- int i;
+ u32 i;
static const struct tree_descr files[] = {
{ "sidtab_hash_stats", &sel_sidtab_hash_stats_ops, S_IRUGO },
};
@@ -1700,7 +1699,7 @@ static const struct file_operations sel_initcon_ops = {

static int sel_make_initcon_files(struct dentry *dir)
{
- int i;
+ u32 i;

for (i = 1; i <= SECINITSID_NUM; i++) {
struct inode *inode;
--
2.40.1



2023-08-04 03:30:55

by Paul Moore

[permalink] [raw]
Subject: Re: [PATCH v2 7/9] selinux: avoid implicit conversions in selinuxfs code

On Jul 28, 2023 =?UTF-8?q?Christian=20G=C3=B6ttsche?= <[email protected]> wrote:
>
> Use umode_t as parameter type for sel_make_inode(), which assigns the
> value to the member i_mode of struct inode.
>
> Use identical type for loop iterator.
>
> Signed-off-by: Christian Göttsche <[email protected]>
> ---
> v2: avoid declarations in init-clauses of for loops
> ---
> security/selinux/selinuxfs.c | 15 +++++++--------
> 1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
> index b969e87fd870..7d7931d1758e 100644
> --- a/security/selinux/selinuxfs.c
> +++ b/security/selinux/selinuxfs.c

...

> @@ -1623,7 +1622,7 @@ static int sel_make_avc_files(struct dentry *dir)
> #endif
> };
>
> - for (i = 0; i < ARRAY_SIZE(files); i++) {
> + for (u32 i = 0; i < ARRAY_SIZE(files); i++) {

No initializers in the for-loop ;)

Also, how did you decide 'i' should be a u32?

> struct inode *inode;
> struct dentry *dentry;
>
> @@ -1649,7 +1648,7 @@ static int sel_make_ss_files(struct dentry *dir)
> {
> struct super_block *sb = dir->d_sb;
> struct selinux_fs_info *fsi = sb->s_fs_info;
> - int i;
> + u32 i;

Same as above, why u32?

> static const struct tree_descr files[] = {
> { "sidtab_hash_stats", &sel_sidtab_hash_stats_ops, S_IRUGO },
> };
> @@ -1700,7 +1699,7 @@ static const struct file_operations sel_initcon_ops = {
>
> static int sel_make_initcon_files(struct dentry *dir)
> {
> - int i;
> + u32 i;

Again, why u32?

> for (i = 1; i <= SECINITSID_NUM; i++) {
> struct inode *inode;
> --
> 2.40.1

--
paul-moore.com