aboutsummaryrefslogtreecommitdiffstats
path: root/security/selinux
diff options
context:
space:
mode:
authorJames Morris <jmorris@namei.org>2012-01-08 20:16:48 -0500
committerJames Morris <jmorris@namei.org>2012-01-08 20:16:48 -0500
commit8fcc99549522fc7a0bbaeb5755855ab0d9a59ce8 (patch)
treea118eaef15d4ba22247f45ee01537ecc906cd161 /security/selinux
parent805a6af8dba5dfdd35ec35dc52ec0122400b2610 (diff)
parent7b7e5916aa2f46e57f8bd8cb89c34620ebfda5da (diff)
Merge branch 'next' into for-linus
Conflicts: security/integrity/evm/evm_crypto.c Resolved upstream fix vs. next conflict manually. Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/selinux')
-rw-r--r--security/selinux/selinuxfs.c14
-rw-r--r--security/selinux/ss/conditional.c2
2 files changed, 5 insertions, 11 deletions
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
index f46658722c78..48a7d0014b4f 100644
--- a/security/selinux/selinuxfs.c
+++ b/security/selinux/selinuxfs.c
@@ -749,14 +749,6 @@ out:
749 return length; 749 return length;
750} 750}
751 751
752static inline int hexcode_to_int(int code) {
753 if (code == '\0' || !isxdigit(code))
754 return -1;
755 if (isdigit(code))
756 return code - '0';
757 return tolower(code) - 'a' + 10;
758}
759
760static ssize_t sel_write_create(struct file *file, char *buf, size_t size) 752static ssize_t sel_write_create(struct file *file, char *buf, size_t size)
761{ 753{
762 char *scon = NULL, *tcon = NULL; 754 char *scon = NULL, *tcon = NULL;
@@ -808,9 +800,11 @@ static ssize_t sel_write_create(struct file *file, char *buf, size_t size)
808 if (c1 == '+') 800 if (c1 == '+')
809 c1 = ' '; 801 c1 = ' ';
810 else if (c1 == '%') { 802 else if (c1 == '%') {
811 if ((c1 = hexcode_to_int(*r++)) < 0) 803 c1 = hex_to_bin(*r++);
804 if (c1 < 0)
812 goto out; 805 goto out;
813 if ((c2 = hexcode_to_int(*r++)) < 0) 806 c2 = hex_to_bin(*r++);
807 if (c2 < 0)
814 goto out; 808 goto out;
815 c1 = (c1 << 4) | c2; 809 c1 = (c1 << 4) | c2;
816 } 810 }
diff --git a/security/selinux/ss/conditional.c b/security/selinux/ss/conditional.c
index 2ec904177fe0..377d148e7157 100644
--- a/security/selinux/ss/conditional.c
+++ b/security/selinux/ss/conditional.c
@@ -175,7 +175,7 @@ void cond_policydb_destroy(struct policydb *p)
175int cond_init_bool_indexes(struct policydb *p) 175int cond_init_bool_indexes(struct policydb *p)
176{ 176{
177 kfree(p->bool_val_to_struct); 177 kfree(p->bool_val_to_struct);
178 p->bool_val_to_struct = (struct cond_bool_datum **) 178 p->bool_val_to_struct =
179 kmalloc(p->p_bools.nprim * sizeof(struct cond_bool_datum *), GFP_KERNEL); 179 kmalloc(p->p_bools.nprim * sizeof(struct cond_bool_datum *), GFP_KERNEL);
180 if (!p->bool_val_to_struct) 180 if (!p->bool_val_to_struct)
181 return -ENOMEM; 181 return -ENOMEM;