Source file sshconnect2.c contains the definition of structure AuthctxtV2. Field "success" in this structure is declared as type "int". In function ssh_userauth2(), authctxt.success is passed to dispatch_run() as the second argument. dispatch_run() is declared in dispatch.c with a second parameter of type sig_atomic_t. On some OS's (i.e. VxWorks) "sig_atomic_t" is declared as "unsigned char". Where the system is also big-endian, the size mismatch between "sig_atomic_t" as "unsigned char" and "authctxt.success" as "int" causes the data to be written to / read from different bytes.
Source file sshconnect2.c contains the definition of structure AuthctxtV2. Field "success" in this structure is declared as type "int". In function ssh_userauth2(), authctxt.success is passed to dispatch_run() as the second argument. dispatch_run() is declared in dispatch.c with a second parameter of type sig_atomic_t. On some OS's (i.e. VxWorks) "sig_atomic_t" is declared as "unsigned char". Where the system is also big-endian, the size mismatch between "sig_atomic_t" as "unsigned char" and "authctxt.success" as "int" causes the data to be written to / read from different bytes. Specifically, the result written by dispatch_run() is not seen b
Fixed in CVS. Will be in openssh-5.6 -thanks!
Move resolved bugs to CLOSED after 5.7 release