adjust highwater check location to avoid masking return value

pull/795/head
JacobBarthelmeh 2025-04-04 14:20:17 -06:00
parent e0a1bdd9c4
commit 1cc4418bdf
1 changed files with 16 additions and 6 deletions

View File

@ -9661,9 +9661,6 @@ static INLINE int Decrypt(WOLFSSH* ssh, byte* plain, const byte* input,
ssh->rxCount += sz; ssh->rxCount += sz;
if (ret == WS_SUCCESS)
ret = HighwaterCheck(ssh, WOLFSSH_HWSIDE_RECEIVE);
return ret; return ret;
} }
@ -9932,9 +9929,6 @@ static INLINE int DecryptAead(WOLFSSH* ssh, byte* plain,
AeadIncrementExpIv(ssh->peerKeys.iv); AeadIncrementExpIv(ssh->peerKeys.iv);
ssh->rxCount += sz; ssh->rxCount += sz;
if (ret == WS_SUCCESS)
ret = HighwaterCheck(ssh, WOLFSSH_HWSIDE_RECEIVE);
return ret; return ret;
} }
#endif /* WOLFSSH_NO_AEAD */ #endif /* WOLFSSH_NO_AEAD */
@ -9970,6 +9964,14 @@ int DoReceive(WOLFSSH* ssh)
ssh->error = ret; ssh->error = ret;
return WS_FATAL_ERROR; return WS_FATAL_ERROR;
} }
ret = HighwaterCheck(ssh, WOLFSSH_HWSIDE_RECEIVE);
if (ret != WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, "PR: First HighwaterCheck fail");
ssh->error = ret;
ret = WS_FATAL_ERROR;
break;
}
} }
NO_BREAK; NO_BREAK;
@ -10054,6 +10056,14 @@ int DoReceive(WOLFSSH* ssh)
} }
} }
ssh->processReplyState = PROCESS_PACKET; ssh->processReplyState = PROCESS_PACKET;
ret = HighwaterCheck(ssh, WOLFSSH_HWSIDE_RECEIVE);
if (ret != WS_SUCCESS) {
WLOG(WS_LOG_DEBUG, "PR: HighwaterCheck fail");
ssh->error = ret;
ret = WS_FATAL_ERROR;
break;
}
NO_BREAK; NO_BREAK;
case PROCESS_PACKET: case PROCESS_PACKET: