zero-init signals array
avoid dereferencing NULL pointers
don't leak memory