Files
percona-toolkit/t/pt-config-diff/samples
Brian Fraser 76a010abee Fix for 917770: Use of uninitialized value in substitution (s///) at pt-config-diff line 1996
This turned out to be two bugs mangled into one.

First, _parse_varvals can deal with (var, undef), but not with (undef).
This is a problem because two of the trhee spots that call
_parse_varvals can return undef because of this:

      map  { $_ =~ m/^([^=]+)(?:=(.*))?$/ }
      grep { $_ !~ m/^\s*#/ }  # no # comment lines
      split("\n", $mysqld_section)

The problem is twofold. First, we are not skipping empty or
whitespace-only lines. That means that the map will fail,
and pass an undef to _parse_varvals. So this ended up in
a triple fix: Make _parse_varvals deal with a sole undef,
skip empty/whitespace lines, and change that map to

	map  { $_ =~ m/^([^=]+)(?:=(.*))?$/ ? ($1, $2) : () }

so even if the regex fails in the future, no sole undef
will be passed down the chain.
2012-11-30 16:17:45 -03:00
..