Menu

#6 login() function does not correctly abort

open
nobody
None
5
2003-08-29
2003-08-29
Anonymous
No

The login() function does not correctly abort if it
detects an error when Errormode is set to 'return'.
The following patch fixes this:

--- Cisco.pm.old Tue Jun 18 18:17:03 2002
+++ Cisco.pm Fri Aug 29 16:58:57 2003
@@ -463,18 +463,18 @@
return $self->error("login failed: access
denied or bad name, passwd, etc");
} elsif (/sername|ogin/) {
$self->print($username) or return &$error
("login disconnected");
- $seen{login}++ && $self->error("login
failed: access denied or bad username");
+ $seen{login}++ && return $self->error
("login failed: access denied or bad username");
} elsif (/[Pp]assw/) {
$self->print($password) or return &$error
("login disconnected");
- $seen{passwd}++ && $self->error("login
failed: access denied or bad password");
+ $seen{passwd}++ && return $self->error
("login failed: access denied or bad password");
} elsif (/(?i:Passcode)/) {
$self->print($passcode) or return &$error
("login disconnected");
- $seen{passcode}++ && $self->error
("login failed: access denied or bad passcode");
+ $seen{passcode}++ && return $self-
>error("login failed: access denied or bad
passcode");
} elsif (/($cmd_prompt_re)/) {
&$reset; # Success. Reset obj to default
vals before continuing.
last;
} else {
- $self->error("login received unexpected
prompt. Aborting.");
+ return $self->error("login received
unexpected prompt. Aborting.");
}
}

Discussion


Log in to post a comment.

MongoDB Logo MongoDB