File percona-xtrabackup-CVE-2015-1027.patch of Package xtrabackup.3587
=== modified file 'storage/innobase/xtrabackup/innobackupex.pl'
--- storage/innobase/xtrabackup/innobackupex.pl 2015-01-17 06:50:18 +0000
+++ storage/innobase/xtrabackup/innobackupex.pl 2015-01-31 15:52:23 +0000
@@ -511,7 +511,8 @@
ref($self->{fh}) eq 'IO::Socket::SSL'
or die(qq/SSL connection failed for $host\n/);
if ( $self->{fh}->can("verify_hostname") ) {
- $self->{fh}->verify_hostname( $host, $ssl_verify_args );
+ $self->{fh}->verify_hostname( $host, $ssl_verify_args )
+ or die(qq/SSL certificate not valid for $host\n/);
}
else {
my $fh = $self->{fh};
@@ -1036,11 +1037,12 @@
PTDEBUG && _d(scalar @$instances_to_check, 'instances to check');
return unless @$instances_to_check;
- my $protocol = 'https'; # optimistic, but...
+ my $protocol = 'https';
eval { require IO::Socket::SSL; };
if ( $EVAL_ERROR ) {
- PTDEBUG && _d($EVAL_ERROR);
- $protocol = 'http';
+ PTDEBUG && _d($EVAL_ERROR);
+ PTDEBUG && _d("SSL not available, won't run version_check");
+ return;
}
PTDEBUG && _d('Using', $protocol);
@@ -1477,6 +1479,10 @@
return;
}
+ if ($item->{item} eq 'MySQL' && $item->{type} eq 'mysql_variable') {
+ $item->{vars} = ['version_comment', 'version'];
+ }
+
my @versions;
my %version_for;
foreach my $instance ( @$instances ) {