don't try to free() the salt if we didn't generate it