Changing some spots where we weren't following the pattern of setting

the error field of the ssh object and just returning WS_FATAL_ERROR.
pull/134/head
John Safranek 2019-01-02 14:38:22 -08:00
parent 1ff58f0a94
commit a28bf9902c
3 changed files with 24 additions and 16 deletions

View File

@ -1438,8 +1438,10 @@ static int GetInputData(WOLFSSH* ssh, word32 size)
* buffer and resets idx to 0.
*/
if (inSz > maxLength) {
if (GrowBuffer(&ssh->inputBuffer, size, usedLength) < 0)
return WS_MEMORY_E;
if (GrowBuffer(&ssh->inputBuffer, size, usedLength) < 0) {
ssh->error = WS_MEMORY_E;
return WS_FATAL_ERROR;
}
}
/* Put buffer data at start if not there */
@ -1458,21 +1460,27 @@ static int GetInputData(WOLFSSH* ssh, word32 size)
do {
in = Receive(ssh,
ssh->inputBuffer.buffer + ssh->inputBuffer.length, inSz);
if (in == -1)
return WS_SOCKET_ERROR_E;
if (in == -1) {
ssh->error = WS_SOCKET_ERROR_E;
return WS_FATAL_ERROR;
}
if (in == WS_WANT_READ)
return WS_WANT_READ;
if (in == WS_WANT_READ) {
ssh->error = WS_WANT_READ;
return WS_FATAL_ERROR;
}
if (in > inSz)
return WS_RECV_OVERFLOW_E;
if (in > inSz) {
ssh->error = WS_RECV_OVERFLOW_E;
return WS_FATAL_ERROR;
}
ssh->inputBuffer.length += in;
inSz -= in;
} while (ssh->inputBuffer.length < size);
return 0;
return WS_SUCCESS;
}

View File

@ -484,7 +484,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
case CONNECT_CLIENT_KEXINIT_SENT:
while (ssh->serverState < SERVER_KEXINIT_DONE) {
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_KEXINIT_SENT", ssh->error);
return WS_FATAL_ERROR;
@ -516,7 +516,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
case CONNECT_CLIENT_KEXDH_INIT_SENT:
while (ssh->isKeying) {
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_KEXDH_INIT_SENT", ssh->error);
return WS_FATAL_ERROR;
@ -540,7 +540,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
case CONNECT_CLIENT_USERAUTH_REQUEST_SENT:
while (ssh->serverState < SERVER_USERAUTH_REQUEST_DONE) {
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_USERAUTH_REQUEST_SENT", ssh->error);
return WS_FATAL_ERROR;
@ -565,7 +565,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
case CONNECT_CLIENT_USERAUTH_SENT:
while (ssh->serverState < SERVER_USERAUTH_ACCEPT_DONE) {
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_USERAUTH_SENT", ssh->error);
return WS_FATAL_ERROR;
@ -606,7 +606,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
case CONNECT_CLIENT_CHANNEL_OPEN_SESSION_SENT:
while (ssh->serverState < SERVER_CHANNEL_OPEN_DONE) {
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_CHANNEL_OPEN_SESSION_SENT", ssh->error);
return WS_FATAL_ERROR;
@ -633,7 +633,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
case CONNECT_CLIENT_CHANNEL_REQUEST_SENT:
while (ssh->serverState < SERVER_DONE) {
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
if (DoReceive(ssh) < WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, connectError,
"CLIENT_CHANNEL_REQUEST_SENT", ssh->error);
return WS_FATAL_ERROR;

View File

@ -2994,7 +2994,7 @@ int wolfSSH_SFTP_connect(WOLFSSH* ssh)
case SFTP_RECV:
case SFTP_EXT:
if ((ssh->error = SFTP_ClientRecvInit(ssh)) != WS_SUCCESS) {
if (SFTP_ClientRecvInit(ssh) != WS_SUCCESS) {
return WS_FATAL_ERROR;
}
ssh->sftpState = SFTP_DONE;