summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorJoshua Roys <joshua.roys@gtri.gatech.edu>2010-02-24 18:52:44 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2010-03-15 09:05:47 -0700
commita0fac0acdd368e8450cda2c75b4a8d86f1151ad4 (patch)
tree83e2e2b69b7ed5e2c89d477904e69464e1cb13bf /security
parenta858b15b88214c7bf918eac57d5debbdd60fffa8 (diff)
netlabel: fix export of SELinux categories > 127
commit c36f74e67fa12202dbcb4ad92c5ac844f9d36b98 upstream. This fixes corrupted CIPSO packets when SELinux categories greater than 127 are used. The bug occured on the second (and later) loops through the while; the inner for loop through the ebitmap->maps array used the same index as the NetLabel catmap->bitmap array, even though the NetLabel bitmap is twice as long as the SELinux bitmap. Signed-off-by: Joshua Roys <joshua.roys@gtri.gatech.edu> Acked-by: Paul Moore <paul.moore@hp.com> Signed-off-by: James Morris <jmorris@namei.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'security')
-rw-r--r--security/selinux/ss/ebitmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/security/selinux/ss/ebitmap.c b/security/selinux/ss/ebitmap.c
index 68c7348d1acc..04b6145d767f 100644
--- a/security/selinux/ss/ebitmap.c
+++ b/security/selinux/ss/ebitmap.c
@@ -128,7 +128,7 @@ int ebitmap_netlbl_export(struct ebitmap *ebmap,
cmap_idx = delta / NETLBL_CATMAP_MAPSIZE;
cmap_sft = delta % NETLBL_CATMAP_MAPSIZE;
c_iter->bitmap[cmap_idx]
- |= e_iter->maps[cmap_idx] << cmap_sft;
+ |= e_iter->maps[i] << cmap_sft;
}
e_iter = e_iter->next;
}