John Peacock wrote:
Peter J. Holzer wrote:
<SNIP>
2) Net::DNS assigns a random id when the package is loaded and just
increments the id for each request. This also makes ID guessing easy.
What's worse, with forkserver the package is loaded in the parent
process, so every child goes through the same sequence of IDs!
It doesn't matter in this case, since the ID isn't checked anyway,
but for synchroneous requests it makes a difference.
This is more of a problem, since we are actively urging people to use
forkserver. Can we use eval "use Net::DNS" after we fork to prevent
this from happening? Can we poke a new ID value manually for each
fork instance?
John
There is code in trunk to deal with this specific issue, around line 124
of ~/qpsmtpd, where the _fork subroutine is defined. Perhaps that could
just be pulled over.