mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
apparmor: fix restricted endian type warnings for dfa unpack
Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
parent
ca4bd5ae0a
commit
e6e8bf4188
2 changed files with 12 additions and 12 deletions
|
@ -104,11 +104,11 @@ extern struct aa_dfa *nulldfa;
|
||||||
|
|
||||||
#define byte_to_byte(X) (X)
|
#define byte_to_byte(X) (X)
|
||||||
|
|
||||||
#define UNPACK_ARRAY(TABLE, BLOB, LEN, TYPE, NTOHX) \
|
#define UNPACK_ARRAY(TABLE, BLOB, LEN, TTYPE, BTYPE, NTOHX) \
|
||||||
do { \
|
do { \
|
||||||
typeof(LEN) __i; \
|
typeof(LEN) __i; \
|
||||||
TYPE *__t = (TYPE *) TABLE; \
|
TTYPE *__t = (TTYPE *) TABLE; \
|
||||||
TYPE *__b = (TYPE *) BLOB; \
|
BTYPE *__b = (BTYPE *) BLOB; \
|
||||||
for (__i = 0; __i < LEN; __i++) { \
|
for (__i = 0; __i < LEN; __i++) { \
|
||||||
__t[__i] = NTOHX(__b[__i]); \
|
__t[__i] = NTOHX(__b[__i]); \
|
||||||
} \
|
} \
|
||||||
|
|
|
@ -73,11 +73,11 @@ static struct table_header *unpack_table(char *blob, size_t bsize)
|
||||||
/* loaded td_id's start at 1, subtract 1 now to avoid doing
|
/* loaded td_id's start at 1, subtract 1 now to avoid doing
|
||||||
* it every time we use td_id as an index
|
* it every time we use td_id as an index
|
||||||
*/
|
*/
|
||||||
th.td_id = be16_to_cpu(*(u16 *) (blob)) - 1;
|
th.td_id = be16_to_cpu(*(__be16 *) (blob)) - 1;
|
||||||
if (th.td_id > YYTD_ID_MAX)
|
if (th.td_id > YYTD_ID_MAX)
|
||||||
goto out;
|
goto out;
|
||||||
th.td_flags = be16_to_cpu(*(u16 *) (blob + 2));
|
th.td_flags = be16_to_cpu(*(__be16 *) (blob + 2));
|
||||||
th.td_lolen = be32_to_cpu(*(u32 *) (blob + 8));
|
th.td_lolen = be32_to_cpu(*(__be32 *) (blob + 8));
|
||||||
blob += sizeof(struct table_header);
|
blob += sizeof(struct table_header);
|
||||||
|
|
||||||
if (!(th.td_flags == YYTD_DATA16 || th.td_flags == YYTD_DATA32 ||
|
if (!(th.td_flags == YYTD_DATA16 || th.td_flags == YYTD_DATA32 ||
|
||||||
|
@ -95,13 +95,13 @@ static struct table_header *unpack_table(char *blob, size_t bsize)
|
||||||
table->td_lolen = th.td_lolen;
|
table->td_lolen = th.td_lolen;
|
||||||
if (th.td_flags == YYTD_DATA8)
|
if (th.td_flags == YYTD_DATA8)
|
||||||
UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
|
UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
|
||||||
u8, byte_to_byte);
|
u8, u8, byte_to_byte);
|
||||||
else if (th.td_flags == YYTD_DATA16)
|
else if (th.td_flags == YYTD_DATA16)
|
||||||
UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
|
UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
|
||||||
u16, be16_to_cpu);
|
u16, __be16, be16_to_cpu);
|
||||||
else if (th.td_flags == YYTD_DATA32)
|
else if (th.td_flags == YYTD_DATA32)
|
||||||
UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
|
UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
|
||||||
u32, be32_to_cpu);
|
u32, __be32, be32_to_cpu);
|
||||||
else
|
else
|
||||||
goto fail;
|
goto fail;
|
||||||
/* if table was vmalloced make sure the page tables are synced
|
/* if table was vmalloced make sure the page tables are synced
|
||||||
|
@ -249,14 +249,14 @@ struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags)
|
||||||
if (size < sizeof(struct table_set_header))
|
if (size < sizeof(struct table_set_header))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if (ntohl(*(u32 *) data) != YYTH_MAGIC)
|
if (ntohl(*(__be32 *) data) != YYTH_MAGIC)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
hsize = ntohl(*(u32 *) (data + 4));
|
hsize = ntohl(*(__be32 *) (data + 4));
|
||||||
if (size < hsize)
|
if (size < hsize)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
dfa->flags = ntohs(*(u16 *) (data + 12));
|
dfa->flags = ntohs(*(__be16 *) (data + 12));
|
||||||
data += hsize;
|
data += hsize;
|
||||||
size -= hsize;
|
size -= hsize;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue