use SIG_ERR, not BADSIG