From 6fbb35d68652a40ffb6ffe64b4221f4700fcac88 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sat, 8 Jun 2013 15:09:43 +0200 Subject: [PATCH] extensions: resolve compile error when CONFIG_UIDGID_STRICT_TYPE_CHECKS=y xt_DNETMAP.c: In function "dnetmap_tg_check": xt_DNETMAP.c:331:16: error: incompatible types when assigning to type "kuid_t" from type "unsigned int" xt_DNETMAP.c:332:16: error: incompatible types when assigning to type "kgid_t" from type "unsigned int" xt_DNETMAP.c:344:16: error: incompatible types when assigning to type "kuid_t" from type "unsigned int" xt_DNETMAP.c:345:16: error: incompatible types when assigning to type "kgid_t" from type "unsigned int" xt_condition.c: In function "condition_mt_check": xt_condition.c:158:24: error: incompatible types when assigning to type "kuid_t" from type "unsigned int" xt_condition.c:159:24: error: incompatible types when assigning to type "kgid_t" from type "unsigned int" xt_quota2.c: In function "q2_get_counter": xt_quota2.c:134:18: error: incompatible types when assigning to type "kuid_t" from type "unsigned int" xt_quota2.c:135:18: error: incompatible types when assigning to type "kgid_t" from type "unsigned int" --- doc/changelog.txt | 2 ++ extensions/xt_DNETMAP.c | 9 +++++---- extensions/xt_condition.c | 4 ++-- extensions/xt_quota2.c | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/doc/changelog.txt b/doc/changelog.txt index cbec097..88f3350 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -2,6 +2,8 @@ HEAD ==== Fixes: +- xt_DNETMAP, xt_condition, xt_quota2: resolve compile error when + CONFIG_UIDGID_STRICT_TYPE_CHECKS=y - xt_RAWNAT: ensure correct operation in the presence of IPv4 options - xt_geoip: do not throw a warnings when country database is size 0 - xt_quota2: print "!" at the correct position during iptables-save diff --git a/extensions/xt_DNETMAP.c b/extensions/xt_DNETMAP.c index dbb4920..a130d89 100644 --- a/extensions/xt_DNETMAP.c +++ b/extensions/xt_DNETMAP.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -328,8 +329,8 @@ static int dnetmap_tg_check(const struct xt_tgchk_param *par) ret = -ENOMEM; goto out; } - pde_data->uid = proc_uid; - pde_data->gid = proc_gid; + pde_data->uid = make_kuid(&init_user_ns, proc_uid); + pde_data->gid = make_kgid(&init_user_ns, proc_gid); /* statistics */ pde_stat = create_proc_entry(p->proc_str_stat, proc_perms, @@ -341,8 +342,8 @@ static int dnetmap_tg_check(const struct xt_tgchk_param *par) } pde_stat->data = p; pde_stat->read_proc = dnetmap_stat_proc_read; - pde_stat->uid = proc_uid; - pde_stat->gid = proc_gid; + pde_stat->uid = make_kuid(&init_user_ns, proc_uid); + pde_stat->gid = make_kgid(&init_user_ns, proc_gid); #endif spin_lock_bh(&dnetmap_lock); diff --git a/extensions/xt_condition.c b/extensions/xt_condition.c index 9235061..2810b22 100644 --- a/extensions/xt_condition.c +++ b/extensions/xt_condition.c @@ -155,8 +155,8 @@ static int condition_mt_check(const struct xt_mtchk_param *par) var->status_proc->read_proc = condition_proc_read; var->status_proc->write_proc = condition_proc_write; list_add(&var->list, &conditions_list); - var->status_proc->uid = condition_uid_perms; - var->status_proc->gid = condition_gid_perms; + var->status_proc->uid = make_kuid(&init_user_ns, condition_uid_perms); + var->status_proc->gid = make_kgid(&init_user_ns, condition_gid_perms); mutex_unlock(&proc_lock); info->condvar = var; return 0; diff --git a/extensions/xt_quota2.c b/extensions/xt_quota2.c index 336fe7a..77a77b4 100644 --- a/extensions/xt_quota2.c +++ b/extensions/xt_quota2.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -131,8 +132,8 @@ q2_get_counter(const struct xt_quota_mtinfo2 *q) p->data = e; p->read_proc = quota_proc_read; p->write_proc = quota_proc_write; - p->uid = quota_list_uid; - p->gid = quota_list_gid; + p->uid = make_kuid(&init_user_ns, quota_list_uid); + p->gid = make_kgid(&init_user_ns, quota_list_gid); list_add_tail(&e->list, &counter_list); spin_unlock_bh(&counter_list_lock); return e;