diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-09-15 20:34:32 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-09-15 21:45:12 -0700 |
commit | 07c325bb70eb5bf207be61e7fb078595d9e9d3c3 (patch) | |
tree | dec23f18ed79d27209be79f7da5684e6b254cdb9 /mg.c | |
parent | 34d81fc46b99fe9152b3744e81381ff804c6451c (diff) | |
download | perl-07c325bb70eb5bf207be61e7fb078595d9e9d3c3.tar.gz |
Make ‘SIG handler not defined’ UTF8- and null-safe
Diffstat (limited to 'mg.c')
-rw-r--r-- | mg.c | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -3124,11 +3124,17 @@ Perl_sighandler(int sig) } if (!cv || !CvROOT(cv)) { - Perl_ck_warner(aTHX_ packWARN(WARN_SIGNAL), "SIG%s handler \"%s\" not defined.\n", - PL_sig_name[sig], (gv ? GvENAME(gv) - : ((cv && CvGV(cv)) - ? GvENAME(CvGV(cv)) - : "__ANON__"))); + const HEK * const hek = gv + ? GvENAME_HEK(gv) + : cv && CvGV(cv) ? GvENAME_HEK(CvGV(cv)) : NULL; + if (hek) + Perl_ck_warner(aTHX_ packWARN(WARN_SIGNAL), + "SIG%s handler \"%"HEKf"\" not defined.\n", + PL_sig_name[sig], hek); + /* diag_listed_as: SIG%s handler "%s" not defined */ + else Perl_ck_warner(aTHX_ packWARN(WARN_SIGNAL), + "SIG%s handler \"__ANON__\" not defined.\n", + PL_sig_name[sig]); goto cleanup; } |