in reply to is_tainted function

As to your main question, sadly, I don't know.

But my reading of the Kill function leads me to different conclusions. Kill seems to return the number of processes successfully signaled (processes sent in a list after the signal. The signal zero sends no signals, and there is no list, so that should always return zero.

Now, if that eval block gets to the "1;", it is because the join went off without a hitch because the stuff in @_ wasn't tainted. So the eval returns 1, the not turns it into false: the variables were not tainted.

If they are tainted, I'm not totally sure what is happening (most of this is guesswork, I'm not that good/experienced with Perl). I'm guessing that the join wets the bed and fails, the "kill" returns 0 (no processes were signaled), the eval grinds to a halt and returns the 0. The not turns that into a true, the variables were in fact tainted.

Again, not that experienced, may be way off base here.

Edit: Dave swooped in with the correct answer. I'm going to go back to reading "Programming Perl."

Replies are listed 'Best First'.
Re^2: is_tainted function
by DrHyde (Prior) on Sep 21, 2007 at 10:42 UTC
    signal 0 is special. In that case, the return value is the number of processes that would have been signalled if you'd sent a valid signal number. In other words, it checks to see if process IDs exist.