diff options
author | Joshua Roys <joshua.roys@gtri.gatech.edu> | 2010-02-24 18:52:44 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-15 08:49:34 -0700 |
commit | 15bd3e21f0b4b12aca0f016cb2d962fc227182e2 (patch) | |
tree | 8add13fad5215da4c06bf591027250e04d251ed3 | |
parent | 44af042e42f2231579ea8ef7586d3789d198f609 (diff) | |
download | linux-stable-15bd3e21f0b4b12aca0f016cb2d962fc227182e2.tar.gz linux-stable-15bd3e21f0b4b12aca0f016cb2d962fc227182e2.tar.bz2 linux-stable-15bd3e21f0b4b12aca0f016cb2d962fc227182e2.zip |
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>
-rw-r--r-- | security/selinux/ss/ebitmap.c | 2 |
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; } |