don't malloc 0 bytes ever