> - *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
