Bug 3297

Summary: Regression - process_input() when read retuns -1
Product: Portable OpenSSH Reporter: balu <balu.gajjala>
Component: sshdAssignee: Assigned to nobody <unassigned-bugs>
Status: CLOSED FIXED    
Severity: major CC: balu.gajjala, djm
Priority: P5    
Version: 8.5p1   
Hardware: Other   
OS: Windows 10   
Bug Depends on:    
Bug Blocks: 3270    

Description balu 2021-04-13 11:04:28 AEST
In V8.1, when read() returns -1 and if errno is not one of these values (EINTR , EAGAIN , EWOULDBLOCK) then we call cleanup_exit()

https://github.com/openssh/openssh-portable/blob/fbe37c90602fa2d0d7b5f05868d6886b1e216e65/serverloop.c#L332


In V8.5, when read() retuns -1 and if errno is equal to EWOULDBLOCK then only we call cleanup_exit()

https://github.com/openssh/openssh-portable/blob/0727dd09eca355e7539cbcb23b148fcee9b21513/serverloop.c#L335


It looks like a typo, line 336 (in V8.5) should be,
 errno == EWOULDBLOCK
Comment 1 balu 2021-04-13 11:10:39 AEST
Please note in this case the sshd processes (one SYSTEM sshd process and another user sshd process) hangs indefinetly.
Comment 2 Damien Miller 2021-04-14 11:46:07 AEST
Fixed in 2dc328023f
Comment 3 Damien Miller 2021-04-23 14:58:12 AEST
closing resolved bugs as of 8.6p1 release