* A. Pagaltzis <[EMAIL PROTECTED]> [2007-02-21 21:30]:
> Overall, something like this:

Uhm yeah, good thing I added the “untested” disclaimer; there are
at least two obvious bugs:

>     sub main {
>         $|++;
> 
>         if ( request_method eq 'GET' ) {
>             page_default;
>         }
>         elsif ( request_method eq 'POST' ) {
>             my $upfh = upload 'file';
> 
>             if ( cgi_error or not $upfh ) {
>                 page_default 'No file uploaded or upload error';
>                 return;
>             }
> 
>             my $password = <$upfh>;

              # missing:
              chomp $password;

>             unless ( check_password $password_dbm, $password ) {
>                 page_default "Bad password: I don't see $password";
>                 return;
>             }
> 
>             page_sending sub {
>                 my $data;
>                 local $/ = \65536; # read 64kb chunks
>                 assert 'open pipe', open my $pipe, '-|', $mailmsgpy, 'send';

                  # is wrong, must be:
                  assert 'open pipe', open my $pipe, '|-', $mailmsgpy, 'send';

>                 assert 'write to pipe', print $pipe $data
>                     while defined( $data = <$upfh> );
>                 assert 'close pipe', close $pipe;
>             };
>         }
>         else {
>             die "Bad request method\n";
>         }
>     }

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Reply via email to