summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKen Shan <ken@digitas.harvard.edu>1997-07-06 23:48:39 +1200
committerTim Bunce <Tim.Bunce@ig.co.uk>1997-08-07 00:00:00 +1200
commitbcf048824f6b70c34cd93907c3c0731899c231c7 (patch)
tree8d3c915e6c602c36b418c1e71adf7f2789eb7367 /lib
parent9bb8015a4914839fa5051d366d06f5db5176a8c9 (diff)
downloadperl-bcf048824f6b70c34cd93907c3c0731899c231c7.tar.gz
Sys::Hostname should localize $SIG{__DIE__}
~s Sys::Hostname should localize $SIG{__DIE__} When Sys::Hostname is trying various methods to get the hostname, it should localize $SIG{__DIE__}. Patch follows. (I'm not sure if $SIG{__WARN__} should also be localized.) p5p-msgid: 199707070357.XAA18065@digitas.harvard.edu
Diffstat (limited to 'lib')
-rw-r--r--lib/Sys/Hostname.pm7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Sys/Hostname.pm b/lib/Sys/Hostname.pm
index 92207acb2b..360d0eb910 100644
--- a/lib/Sys/Hostname.pm
+++ b/lib/Sys/Hostname.pm
@@ -39,7 +39,8 @@ sub hostname {
if ($^O eq 'VMS') {
# method 2 - no sockets ==> return DECnet node name
- eval {my($test) = gethostbyname('me')}; # returns 'me' on most systems
+ eval {local $SIG{'__DIE__'};
+ my($test) = gethostbyname('me')}; # returns 'me' on most systems
if ($@) { return $host = $ENV{'SYS$NODE'}; }
# method 3 - has someone else done the job already? It's common for the
@@ -69,6 +70,7 @@ sub hostname {
# method 2 - syscall is preferred since it avoids tainting problems
eval {
+ local $SIG{'__DIE__'};
{
package main;
require "syscall.ph";
@@ -79,16 +81,19 @@ sub hostname {
# method 3 - trusty old hostname command
|| eval {
+ local $SIG{'__DIE__'};
$host = `(hostname) 2>/dev/null`; # bsdish
}
# method 4 - sysV uname command (may truncate)
|| eval {
+ local $SIG{'__DIE__'};
$host = `uname -n 2>/dev/null`; ## sysVish
}
# method 5 - Apollo pre-SR10
|| eval {
+ local $SIG{'__DIE__'};
($host,$a,$b,$c,$d)=split(/[:\. ]/,`/com/host`,6);
}