> -     *state = ts.tv_nsec;
> +     *state = (intptr_t)&printf ^ time(NULL) ^ (ts.tv_nsec * 0xAC5533CD);

tv_nsec is `long` which is signed. Signed interger overflow is
undefined. You need to cast it to `unsigned long` before multiply:

        ... ^ ((unsigned long)ts.tv_nsec * 0xAC5533CD)

- NRK

Reply via email to