Server IP : 85.214.239.14 / Your IP : 18.222.91.173 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/root/usr/share/doc/libmime-tools-perl/examples/ |
Upload File : |
#!/usr/bin/perl -w =head1 NAME mimeabuse - try hard to break MIME parsing =head1 DESCRIPTION This is meant to be run from the MIME-tools distribution directory as a test. It will attempt to parse the same several messages 1000 times each. It does a purge after each parse, so it shouldn't fill up your disk; however, it should be a good test for hitting resource limits. I wrote this after I discovered that, under Perl 5.002 at least, FileHandle->new_tmpfile returned an object that did not get destructed automatically when it exited scope. :-( =head1 AUTHOR Eryq, eryq@zeegee.com =cut use MIME::Parser; my $parser = new MIME::Parser; ((-d "./testin") && (-d "./testout")) or die "run this from the MIME-tools distribution directory"; $parser->output_dir("./testout"); $parser->output_to_core("NONE"); foreach $input ( 'multi-simple.msg', 'multi-nested3.msg', 'mp-msg-rfc822.msg' ) { $parser->parse_nested_messages($input eq 'mp-msg-rfc822.msg'); for ($i = 0; $i < 1000; $i++) { print STDERR "$input: i = $i\n"; open IN, "testin/$input" or die "open testin/$input: $!"; $entity = $parser->read(\*IN) or die "MIME error"; close IN; $entity->purge; } } print "Who-hooo! Done!\n";