Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- BEGIN {
- unshift @INC,'/scripts';
- }
- use Socket;
- my $httpClient;
- eval {
- require cPScript::HttpRequest;
- $httpClient = cPScript::HttpRequest->new();
- };
- my $gotSigALRM=0;
- my $connecttimeout = 30;
- my $system;
- my $machine;
- chomp($system = `uname -s`);
- chomp($machine = `uname -m`);
- my %UPCONF = loadcpupdateconf();
- my $HTTPB='RELEASE';
- if ($UPCONF{'CPANEL'} =~ /stable/i) {
- $HTTPB='STABLE';
- } elsif ($UPCONF{'CPANEL'} =~ /current/i) {
- $HTTPB='CURRENT';
- } elsif ($UPCONF{'CPANEL'} =~ /edge/i) {
- $HTTPB='EDGE';
- } elsif ($UPCONF{'CPANEL'} =~ /nightly/i) {
- $HTTPB='NIGHTLY';
- }
- my $arch = '';
- if ($system =~ /freebsd/i) {
- $arch = '-FREEBSD';
- }
- if ($machine =~ /x86_64/i) {
- $arch .= '-x86_64';
- }
- if ($machine =~ /amd64/i) {
- $arch .= '-amd64';
- }
- print "cPanel Security Patch (w/new wrapper) (sec092506) v1n";
- checkcpsec();
- updatewrapper();
- print "Patch Completen";
- sub updatewrapper {
- my $wrap_path='/usr/local/cpanel/bin/cpwrap';
- if (! -e $wrap_path) {
- print "No wrapper present (ok) ... skippedn";
- return();
- }
- my $updated=0;
- open(WR,'',$wrap_path);
- print WR $cpwrap;
- close(WR);
- chmod(oct(4755),$wrap_path);
- print "Donen";
- }
- sub checkcpsec() {
- patchps('/usr/local/cpanel/bin/mysqladmin');
- patchps('/usr/local/cpanel/bin/hooksadmin');
- }
- sub patchps {
- my $script = shift;
- if (! -e $script) { return; }
- my %TA=('unshift( @INC, "/usr/local/cpanel" );'=>0,,
- '@INC=grep(!/(^.|..|/.+)/,@INC);'=>0,
- '@INC=grep(/^(/usr/libd*/perl|/usr/local/libd*/perl|/usr/local/cpanel)/,@INC);'=>0);
- my @RM = ('/usr/lib/perl|','push(@INC','push( @INC');
- open(SS,'+
Advertisement
Add Comment
Please, Sign In to add comment