Fun fact: if you do a conversion from (int *) to (short *) and dereference it, you are getting a surprise on big-endian architectures...
See https://bugs.debian.org/1090058 for the whole story - and thanks to @sergiodj for helping me to debug this one