in reply to Re^3: using -T doesn't work
in thread using -T doesn't work


Neither works, Im running openbsd 3.6. ping lives in sbin and is suid root.

Replies are listed 'Best First'.
Re^5: using -T doesn't work
by Corion (Patriarch) on Dec 28, 2004 at 20:13 UTC

    My instructions said:

    If that doesn't work, you need to find out in which directory the ping executable lives, and put the name of that directory into $ENV{PATH} instead.

    So, did you try the following:

    $ENV{PATH} = '/sbin';

    at the top of your script?

    If so, what do you mean by Does not work ? In what way does it not work? Does it report all hosts as reachable ? All hosts as unreachable? Does it claim that the ancient gods of Egypt will conquer the world tomorrow when you know that their uprising is scheduled for next year?

      yes, I tried that - I get the same result when I run the code:

      Insecure dependency in connect while running with -T switch at /usr/libdata/perl5/Net/Ping.pm line 914.

        I ran your code from the command line and it did not throw any error, and it even correctly reported all three hosts as up. But then I got the idea that maybe there is a file ship.cfg in your current directory (which you did not mention but which I should have caught sooner). Taint mode regards input from local files as tainted (see perldoc perlsec or the perldoc online page). So you will need to untaint that data manually. I chose the sledgehammer approach to untainting:

        if ( -e "ship.cfg" ) { open (CFGFILE, "<", "ship.cfg") || die; @hosts=<CFGFILE>; close (CFGFILE); # untaint all data from ship.cfg @hosts = map { /^(.*)$/ and $1 } @hosts; } else { # Enter your hosts here... @hosts = qw/host1 host2 host3 aliens/; }

        But I would recommend hardcoding all hosts in the script instead, as that will be much more secure than reading in a file and pinging every host named in that file.