@@ -85,12 +85,15 @@ char* myoptarg = NULL;
8585
8686#define AssertTrue (x ) Assert( (x), ("%s is true", #x), (#x " => FALSE"))
8787#define AssertFalse (x ) Assert(!(x), ("%s is false", #x), (#x " => TRUE"))
88- #define AssertNotNull (x ) Assert( (x), ("%s is not null", #x), (#x " => NULL"))
88+
89+ #define AssertNotNull (x ) do { \
90+ PEDANTIC_EXTENSION void* _isNotNull = (void*)(x); \
91+ Assert(_isNotNull, ("%s is not null", #x), (#x " => NULL")); \
92+ } while (0)
8993
9094#define AssertNull (x ) do { \
91- PEDANTIC_EXTENSION void* _x = (void*)(x); \
92- \
93- Assert(!_x, ("%s is null", #x), (#x " => %p", _x)); \
95+ PEDANTIC_EXTENSION void* _isNull = (void*)(x); \
96+ Assert(!_isNull, ("%s is null", #x), (#x " => %p", _isNull)); \
9497} while(0)
9598
9699#define AssertInt (x , y , op , er ) do { \
@@ -924,8 +927,17 @@ static void sftp_client_connect(WOLFSSH_CTX** ctx, WOLFSSH** ssh, int port)
924927
925928 build_addr (& clientAddr , host , port );
926929 tcp_socket (& sockFd , ((struct sockaddr_in * )& clientAddr )-> sin_family );
930+ if (sockFd < 0 ) {
931+ wolfSSH_free (* ssh );
932+ wolfSSH_CTX_free (* ctx );
933+ * ctx = NULL ;
934+ * ssh = NULL ;
935+ return ;
936+ }
937+
927938 ret = connect (sockFd , (const struct sockaddr * )& clientAddr , clientAddrSz );
928939 if (ret != 0 ){
940+ WCLOSESOCKET (sockFd );
929941 wolfSSH_free (* ssh );
930942 wolfSSH_CTX_free (* ctx );
931943 * ctx = NULL ;
@@ -942,6 +954,7 @@ static void sftp_client_connect(WOLFSSH_CTX** ctx, WOLFSSH** ssh, int port)
942954 ret = wolfSSH_SFTP_connect (* ssh );
943955
944956 if (ret != WS_SUCCESS ){
957+ WCLOSESOCKET (sockFd );
945958 wolfSSH_free (* ssh );
946959 wolfSSH_CTX_free (* ctx );
947960 * ctx = NULL ;
@@ -1608,8 +1621,17 @@ static void keyboard_client_connect(WOLFSSH_CTX** ctx, WOLFSSH** ssh, int port)
16081621
16091622 build_addr (& clientAddr , host , port );
16101623 tcp_socket (& sockFd , ((struct sockaddr_in * )& clientAddr )-> sin_family );
1624+ if (sockFd < 0 ) {
1625+ wolfSSH_free (* ssh );
1626+ wolfSSH_CTX_free (* ctx );
1627+ * ctx = NULL ;
1628+ * ssh = NULL ;
1629+ return ;
1630+ }
1631+
16111632 ret = connect (sockFd , (const struct sockaddr * )& clientAddr , clientAddrSz );
16121633 if (ret != 0 ){
1634+ WCLOSESOCKET (sockFd );
16131635 wolfSSH_free (* ssh );
16141636 wolfSSH_CTX_free (* ctx );
16151637 * ctx = NULL ;
@@ -1625,6 +1647,7 @@ static void keyboard_client_connect(WOLFSSH_CTX** ctx, WOLFSSH** ssh, int port)
16251647 ret = wolfSSH_connect (* ssh );
16261648
16271649 if (ret != WS_SUCCESS ){
1650+ WCLOSESOCKET (sockFd );
16281651 wolfSSH_free (* ssh );
16291652 wolfSSH_CTX_free (* ctx );
16301653 * ctx = NULL ;
0 commit comments