I spent some time over the weekend looking at this, without much luck. I
have a 'fix' - make FETCH IMA_NO_TAINT_IN|IMA_NO_TAINT_OUT, in DBI.pm.

That works arround the problem, but I'm not too sure that its a
valid fix.

The alternate suggestion, given back in August (of just having the
dispatch method test for methods starting with fetch, rather than
testing in _set_fbav) also works, but then stuff like func isn't
tainted.

OTOH, this is just a workarround, and there is no guarantee that it
won't break again.

I'm not sure what Tim prefers. Both interpretations of TaintOut (ie
taint data out, vs taint everything) are probably valid, as long as
they're appropriately documented. Personally, I think that connecting to
+ relying on a database whose output you don't trust is a bit silly.
Especially with TaintIn and TaintOut set, where you are going to want to
use returned data from the db in subsequent statements, which is the
problem here. TaintIn is a different story, though, which is why I
wanted these split up to start with.

I would like to know what the change made in perl5.6.1 which fixed this
was, though - any clues?

Thoughts?

Bradley

Reply via email to