On Sat, Feb 27, 2016 at 06:23:29PM +0000, Chris Bainbridge wrote:
>         /* calculate the checksum */
>         orig_sum = 0;
>         i = (MC_HEADER_SIZE + data_size) / DWSIZE;
>         while (i--)
>                 orig_sum += ((int *)mc)[i];

Ok, since SDM says that all fields should be treated as unsigneds when
doing the checksum verification, that cast above should be (u32 *) too.

Also, the extended table signature should be fixed to use u32s too:

        ext_tablep = (int *)ext_header;
        i = ext_table_size / sizeof(u32);
        while (i--)
                ext_table_sum += ext_tablep[i];
        ...

Care to complete your patch please?

Thanks.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

Reply via email to