From 3f4f657b58cb1486230a873f40b847e0bc4735cf Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Fri, 13 Mar 2026 16:54:51 -0600 Subject: [PATCH 1/2] add check for window full with SFTP client commands --- examples/sftpclient/sftpclient.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/sftpclient/sftpclient.c b/examples/sftpclient/sftpclient.c index be4a3687b..d87cb4e35 100644 --- a/examples/sftpclient/sftpclient.c +++ b/examples/sftpclient/sftpclient.c @@ -591,7 +591,8 @@ static int doCmds(func_args* args) ret = wolfSSH_get_error(ssh); } } while (ret == WS_WANT_READ || ret == WS_WANT_WRITE || - ret == WS_CHAN_RXD || ret == WS_REKEYING); + ret == WS_CHAN_RXD || ret == WS_REKEYING || + ret == WS_WINDOW_FULL); #ifndef WOLFSSH_NO_TIMESTAMP WMEMSET(currentFile, 0, WOLFSSH_MAX_FILENAME); @@ -702,7 +703,8 @@ static int doCmds(func_args* args) ret = wolfSSH_get_error(ssh); } } while (ret == WS_WANT_READ || ret == WS_WANT_WRITE || - ret == WS_CHAN_RXD || ret == WS_REKEYING); + ret == WS_CHAN_RXD || ret == WS_REKEYING || + ret == WS_WINDOW_FULL); #ifndef WOLFSSH_NO_TIMESTAMP WMEMSET(currentFile, 0, WOLFSSH_MAX_FILENAME); @@ -1058,7 +1060,8 @@ static int doCmds(func_args* args) ret = wolfSSH_get_error(ssh); } } while (ret == WS_WANT_READ || ret == WS_WANT_WRITE || - ret == WS_CHAN_RXD || ret == WS_REKEYING); + ret == WS_CHAN_RXD || ret == WS_REKEYING || + ret == WS_WINDOW_FULL); if (ret != WS_SUCCESS) { if (SFTP_FPUTS(args, "Error with rename\n") < 0) { err_msg("fputs error"); From f189c2070567b5ee67c3b8673c5076af0e548673 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Fri, 13 Mar 2026 17:06:34 -0600 Subject: [PATCH 2/2] fix for 32BIT max value set --- src/internal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/internal.c b/src/internal.c index e40878584..996484832 100644 --- a/src/internal.c +++ b/src/internal.c @@ -17483,7 +17483,7 @@ int wolfSSH_oct2dec(WOLFSSH* ssh, byte* oct, word32 octSz) } #ifndef WOLFSSL_MAX_32BIT - #define WOLFSSL_MAX_32BIT INT_MAX + #define WOLFSSL_MAX_32BIT 0xffffffffU /* wolfSSL types.h defines this */ #endif /* addend1 += addend2 */ @@ -17493,7 +17493,7 @@ void AddAssign64(word32* addend1, word32 addend2) addend1[1]++; /* -1 to account for roll over digit */ - addend1[0] = addend2 - (WOLFSSL_MAX_32BIT- addend1[0]) - 1; + addend1[0] = addend2 - (WOLFSSL_MAX_32BIT - addend1[0]) - 1; } else { addend1[0] += addend2;