Find the following in bin/etadmin_mod.pl:
elsif ( index( $line, "Userinfo" ) == 0 )
{
#$line =~ /cl_guid\([^\]*)\.*name\([^\]*)\.*\/; #ip\(d+.d+.d+.d+):+\/;
my $rhash = &parse_userinfo($line);
my $guid = $$rhash{'cl_guid'};
my $name = &strip_name( $$rhash{'name'} );
my $ip = $$rhash{'ip'};
my $custom_password = $$rhash{'hp_password'};
my $custom_exec = $$rhash{'hp_logincmd'};
my $greeting = $$rhash{'hp_greeting'};
$kick = "";
$ip =~ s/:.*$//;
$over_ip = $ip;
$over_guid = $guid;
$over_name = $name;
$ready{$guid} = time;
Replace it with:
elsif ( index( $line, "Userinfo" ) == 0 )
{
#$line =~ /cl_guid\([^\]*)\.*name\([^\]*)\.*\/; #ip\(d+.d+.d+.d+):+\/;
my $rhash = &parse_userinfo($line);
my $guid = $$rhash{'cl_guid'};
my $name = &strip_name( $$rhash{'name'} );
my $ip = $$rhash{'ip'};
my $custom_password = $$rhash{'hp_password'};
my $custom_exec = $$rhash{'hp_logincmd'};
my $greeting = $$rhash{'hp_greeting'};
$kick = "";
$ip =~ s/:.*$//;
# START: Lucel's admin steal fix....
if ( $$rhash{'name'} =~ /.+^$/ )
{
&log("Kicked $name. Has trailing carrot in their name, can be used to hack etadmin mod!");
$kick = "You have an invalid name! Please remove the last character!";
next;
}
# END: Lucel's admin steal fix....
$over_ip = $ip;
$over_guid = $guid;
$over_name = $name;
$ready{$guid} = time;