https://bugzilla.mindrot.org/show_bug.cgi?id=1698
Summary: Connection stalls on PTY allocation failure
Product: Portable OpenSSH
Version: 5.3p1
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: sshd
AssignedTo: [email protected]
ReportedBy: [email protected]
If on the server side sshd was not able to allocate a PTY (in my case a
wrongly configured FreeBSD's ugidfw rule wont allow opening those
files) both sshd and the client ssh will stall.
Client ssh log:
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug2: channel 0: request shell confirm 1
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_confirm: type 100 id 0
PTY allocation request failed on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Server side log:
Jan 14 14:40:09 www sshd[50855]: error: openpty: Permission denied
Jan 14 14:40:09 www sshd[50855]: error: session_pty_req: session 0
alloc failed
--
I traced down this to session.c:session_pty_req:
if (no_pty_flag) {
debug("Allocating a pty not permitted for this
authentication.");
return 0;
}
if (s->ttyfd != -1) {
packet_disconnect("Protocol error: you already have a
pty.");
return 0;
}
...
debug("Allocating pty.");
if (!PRIVSEP(pty_allocate(&s->ptyfd, &s->ttyfd, s->tty,
sizeof(s->tty)))) {
if (s->term)
xfree(s->term);
s->term = NULL;
s->ptyfd = -1;
s->ttyfd = -1;
error("session_pty_req: session %d alloc failed",
s->self);
return 0;
}
--
I am not that deeply into openssh but to me it looks like a
packet_disconnect() might be missing after the error().
--
Configure bugmail: https://bugzilla.mindrot.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
_______________________________________________
openssh-bugs mailing list
[email protected]
https://lists.mindrot.org/mailman/listinfo/openssh-bugs