forked from luck/tmp_suning_uos_patched
selinux: provide __le variables explicitly
While the endiannes is being handled properly sparse was unable to verify this due to type inconsistency. So introduce an additional __le32 respectively _le64 variable to be passed to le32/64_to_cpu() to allow sparse to verify proper typing. Note that this patch does not change the generated binary on little-endian systems - on 32bit powerpc it does change the binary. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
a188339ca5
commit
8ba1d53739
|
@ -347,7 +347,9 @@ int ebitmap_read(struct ebitmap *e, void *fp)
|
|||
{
|
||||
struct ebitmap_node *n = NULL;
|
||||
u32 mapunit, count, startbit, index;
|
||||
__le32 ebitmap_start;
|
||||
u64 map;
|
||||
__le64 mapbits;
|
||||
__le32 buf[3];
|
||||
int rc, i;
|
||||
|
||||
|
@ -381,12 +383,12 @@ int ebitmap_read(struct ebitmap *e, void *fp)
|
|||
goto bad;
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
rc = next_entry(&startbit, fp, sizeof(u32));
|
||||
rc = next_entry(&ebitmap_start, fp, sizeof(u32));
|
||||
if (rc < 0) {
|
||||
pr_err("SELinux: ebitmap: truncated map\n");
|
||||
goto bad;
|
||||
}
|
||||
startbit = le32_to_cpu(startbit);
|
||||
startbit = le32_to_cpu(ebitmap_start);
|
||||
|
||||
if (startbit & (mapunit - 1)) {
|
||||
pr_err("SELinux: ebitmap start bit (%d) is "
|
||||
|
@ -423,12 +425,12 @@ int ebitmap_read(struct ebitmap *e, void *fp)
|
|||
goto bad;
|
||||
}
|
||||
|
||||
rc = next_entry(&map, fp, sizeof(u64));
|
||||
rc = next_entry(&mapbits, fp, sizeof(u64));
|
||||
if (rc < 0) {
|
||||
pr_err("SELinux: ebitmap: truncated map\n");
|
||||
goto bad;
|
||||
}
|
||||
map = le64_to_cpu(map);
|
||||
map = le64_to_cpu(mapbits);
|
||||
|
||||
index = (startbit - n->startbit) / EBITMAP_UNIT_SIZE;
|
||||
while (map) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user