Hi there!

I am sorry. I do not have a solution for this bug but since I have 
updated.... im am in the same ugly position.

Okay, here is something to think about:

A snippet from how it worked fine (unter 5.6.0):


============== SNIPPET WORKING==========================

18/08/2002 03:11:08:32250: +++ starting debugging for process 32250 by 
uid=504 at 18/08/2002 03:11:08
18/08/2002 03:11:08:32250: setting UID to EUID so subprocesses can 
access files generated by this script
18/08/2002 03:11:08:32250: program name is qmail-scanner-queue.pl, 
version 1.13
18/08/2002 03:11:08:32250: incoming SMTP connection from via smtp from 
blabla
18/08/2002 03:11:08:32250: w_c: mkdir 
/var/spool/qmailscan/www102963306842332250
18/08/2002 03:11:08:32250: w_c: start dumping incoming msg into 
/var/spool/qmailscan/working/tmp/www102963306842332250 [1029633068.81048]
18/08/2002 03:11:08:32250: w_c: added fake MIME-Version header
18/08/2002 03:11:08:32249: --output of fprot was:
Virus scanning report  -  18. August 2002   3:11

F-PROT 3.12a
SIGN.DEF created 2. August 2002
SIGN2.DEF created 1. August 2002
MACRO.DEF created 4. July 2002

Search: /var/spool/qmailscan/www102963306842332249
Action: Report only
Files: "Dumb" scan of all files
Switches: /ARCHIVE /AI


Results of virus scanning:

Files: 1
MBRs: 0
Boot sectors: 0
Objects scanned: 1

Time: 0:00

No viruses or suspicious files/boot sectors were found.
--
18/08/2002 03:11:08:32249: fprot: finished scan of dir 
"/var/spool/qmailscan/www102963306842332249" in 0.166461 secs
18/08/2002 03:11:08:32249: scanloop: finished scan of 
"/var/spool/qmailscan/www102963306842332249"...
18/08/2002 03:11:08:32249: ini_sc: scanning message took 0.169689 seconds
18/08/2002 03:11:08:32249: q_r: fork off child into 
/var/qmail/bin/qmail-queue...
18/08/2002 03:11:08:32249: cleanup: /bin/rm -rf 
/var/spool/qmailscan/www102963306842332249/ 
/var/spool/qmailscan/working/new/www102963306842332249
18/08/2002 03:11:09:32249: all finished. Total of 0.984885 secs


============== SNIPPET WORKING==========================

Now here is where it dies:

============== SNIPPET NOT WORKING==========================

21/08/2002 04:55:19:25591: +++ starting debugging for process 25591 by 
uid=504 at 21/08/2002 04:55:19
21/08/2002 04:55:19:25591: setting UID to EUID so subprocesses can 
access files generated by this script
21/08/2002 04:55:19:25591: program name is qmail-scanner-queue.pl, 
version 1.13
21/08/2002 04:55:19:25591: incoming SMTP connection from via smtp from 
blabla
21/08/2002 04:55:19:25591: w_c: mkdir 
/var/spool/qmailscan/www102989851942325591
21/08/2002 04:55:19:25591: w_c: start dumping incoming msg into 
/var/spool/qmailscan/working/tmp/www102989851942325591 [1029898519.83305]
21/08/2002 04:55:19:25591: w_c: rename new msg from 
/var/spool/qmailscan/working/tmp/www102989851942325591 to 
/var/spool/qmailscan/working/new/www102989851942325591 [1029898519.84046]
21/08/2002 04:55:19:25591: d_m: starting /usr/local/bin/reformime 
-x/var/spool/qmailscan/www102989851942325591/ 
</var/spool/qmailscan/working/new/www102989851942325591 [1029898519.8408]
21/08/2002 04:55:19:25591: d_m: finished /usr/local/bin/reformime 
-x/var/spool/qmailscan/www102989851942325591/ [1029898519.84901]
21/08/2002 04:55:19:25591: d_m: Manually unpack any zip files as some 
virus scanners don't do zip under Unix!
21/08/2002 04:55:19:25591: d_m: unpacking message took 0.008651 seconds
21/08/2002 04:55:19:25591: unsetting QMAILQUEUE env var

============== SNIPPET NOT WORKING==========================

Okay, so the last thing it does is unsetting the QMAILQUEUE Environment 
Variable:

In Subroutine <eval>:
eval {
[...]
   &debug("I AM ALIVE UNTIL HERE")
   &grab_envelope_hdrs;
   &deubg("I AM DEAD HERE")
   &debug("from=$headers{'from'},subj=$headers{'subject'}, 
$qsmsgid=$headers{$qsmsgid} $smtp_sender");
[...]

we have got the routine &grab_envelope_hdrs! Until here i performed some 
tests (or better: tried whether it had died or not by saying "I am alive")

So the programm dies at &grab_envelope_hdrs, which looks like this:

sub grab_envelope_hdrs {
   select(STDOUT); $|=1;
        &debug("I AM ALIVE");
   open(SOUT,"<&STDOUT")||&tempfail("cannot dup fd 0 - $!");
        &debug("I AM DEAD");
   while (<SOUT>) {
                [...]
     }
     #only meant to be one line!
     last;
   }
[...]

Until the position "I AM ALIVE" the program works. At the position "I AM 
DEAD" it is really dead. So the problem is the redirection at the 
open-call. And this seems to be the bug we are looking for.

It has already been found here:
http:[EMAIL PROTECTED]/msg82466.html

I am not a Perl Pro (more a Intermediate... or better beginner) nor have 
I written Qmail-Scanner nor have I days to look through the code.

I think just the redirection of the open-call (with STDOUT) needs to be 
rewritten to work with 5.8.0.

I have commented out the open-call and the following code and it worked 
out ... it did not die.

I hope this helps.

Stephan Winter



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Qmail-scanner-general mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/qmail-scanner-general

Reply via email to