https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108695

--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
Ok, one suspicious casting of memory comes from:

typedef union _roundkey {
        unsigned char data[16];
        unsigned int data32[4];
} roundkey;

...

typedef struct _sec_fields {
...
        roundkey ekeys[40];

...
        uchar *rkeys = (uchar*)crypto->ekeys;   //malloc(alg->ctx_size);

It's then passed to rijndaelEncrypt(const u8 *rkeys /*u32 rk[4*(Nr + 1)]*/,
uint Nr, const u8 pt[16], u8 ct[16])
 as the first argument, where it's later used as:

        const u32 *rk = (u32*)rkeys;

Might be the violation we face? Here are mixed 'roundkey *' and 'u32*'.

Reply via email to