Skip to content

Commit 2a572cf

Browse files
committed
Move socket setup behind ssl structure setup.
If socket setup fail, ssl structure setup won't be called. And the order of them do not affect final result, but it will break ssl setup negative tests. Change the order can fix that. issue: Mbed-TLS#4844 Change-Id: I2488ed5f74773421eb1eac0cfd7f1ce4fbb0b32d Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
1 parent b1dc59a commit 2a572cf

File tree

2 files changed

+54
-55
lines changed

2 files changed

+54
-55
lines changed

programs/ssl/ssl_client2.c

+35-35
Original file line numberDiff line numberDiff line change
@@ -1592,41 +1592,7 @@ int main( int argc, char *argv[] )
15921592
#endif /* MBEDTLS_X509_CRT_PARSE_C */
15931593

15941594
/*
1595-
* 2. Start the connection
1596-
*/
1597-
if( opt.server_addr == NULL)
1598-
opt.server_addr = opt.server_name;
1599-
1600-
mbedtls_printf( " . Connecting to %s/%s/%s...",
1601-
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
1602-
opt.server_addr, opt.server_port );
1603-
fflush( stdout );
1604-
1605-
if( ( ret = mbedtls_net_connect( &server_fd,
1606-
opt.server_addr, opt.server_port,
1607-
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
1608-
MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
1609-
{
1610-
mbedtls_printf( " failed\n ! mbedtls_net_connect returned -0x%x\n\n",
1611-
(unsigned int) -ret );
1612-
goto exit;
1613-
}
1614-
1615-
if( opt.nbio > 0 )
1616-
ret = mbedtls_net_set_nonblock( &server_fd );
1617-
else
1618-
ret = mbedtls_net_set_block( &server_fd );
1619-
if( ret != 0 )
1620-
{
1621-
mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n",
1622-
(unsigned int) -ret );
1623-
goto exit;
1624-
}
1625-
1626-
mbedtls_printf( " ok\n" );
1627-
1628-
/*
1629-
* 3. Setup stuff
1595+
* 2. Setup stuff
16301596
*/
16311597
mbedtls_printf( " . Setting up the SSL/TLS structure..." );
16321598
fflush( stdout );
@@ -1978,6 +1944,40 @@ int main( int argc, char *argv[] )
19781944

19791945
mbedtls_printf( " ok\n" );
19801946

1947+
/*
1948+
* 3. Start the connection
1949+
*/
1950+
if( opt.server_addr == NULL)
1951+
opt.server_addr = opt.server_name;
1952+
1953+
mbedtls_printf( " . Connecting to %s/%s/%s...",
1954+
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
1955+
opt.server_addr, opt.server_port );
1956+
fflush( stdout );
1957+
1958+
if( ( ret = mbedtls_net_connect( &server_fd,
1959+
opt.server_addr, opt.server_port,
1960+
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
1961+
MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
1962+
{
1963+
mbedtls_printf( " failed\n ! mbedtls_net_connect returned -0x%x\n\n",
1964+
(unsigned int) -ret );
1965+
goto exit;
1966+
}
1967+
1968+
if( opt.nbio > 0 )
1969+
ret = mbedtls_net_set_nonblock( &server_fd );
1970+
else
1971+
ret = mbedtls_net_set_block( &server_fd );
1972+
if( ret != 0 )
1973+
{
1974+
mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n",
1975+
(unsigned int) -ret );
1976+
goto exit;
1977+
}
1978+
1979+
mbedtls_printf( " ok\n" );
1980+
19811981
/*
19821982
* 4. Handshake
19831983
*/

programs/ssl/ssl_server2.c

+19-20
Original file line numberDiff line numberDiff line change
@@ -2398,26 +2398,7 @@ int main( int argc, char *argv[] )
23982398
#endif /* SNI_OPTION */
23992399

24002400
/*
2401-
* 2. Setup the listening TCP socket
2402-
*/
2403-
mbedtls_printf( " . Bind on %s://%s:%s/ ...",
2404-
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
2405-
opt.server_addr ? opt.server_addr : "*",
2406-
opt.server_port );
2407-
fflush( stdout );
2408-
2409-
if( ( ret = mbedtls_net_bind( &listen_fd, opt.server_addr, opt.server_port,
2410-
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
2411-
MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
2412-
{
2413-
mbedtls_printf( " failed\n ! mbedtls_net_bind returned -0x%x\n\n", (unsigned int) -ret );
2414-
goto exit;
2415-
}
2416-
2417-
mbedtls_printf( " ok\n" );
2418-
2419-
/*
2420-
* 3. Setup stuff
2401+
* 2. Setup stuff
24212402
*/
24222403
mbedtls_printf( " . Setting up the SSL/TLS structure..." );
24232404
fflush( stdout );
@@ -2911,6 +2892,24 @@ int main( int argc, char *argv[] )
29112892

29122893
mbedtls_printf( " ok\n" );
29132894

2895+
/*
2896+
* 3. Setup the listening TCP socket
2897+
*/
2898+
mbedtls_printf( " . Bind on %s://%s:%s/ ...",
2899+
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
2900+
opt.server_addr ? opt.server_addr : "*",
2901+
opt.server_port );
2902+
fflush( stdout );
2903+
2904+
if( ( ret = mbedtls_net_bind( &listen_fd, opt.server_addr, opt.server_port,
2905+
opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
2906+
MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
2907+
{
2908+
mbedtls_printf( " failed\n ! mbedtls_net_bind returned -0x%x\n\n", (unsigned int) -ret );
2909+
goto exit;
2910+
}
2911+
mbedtls_printf( " ok\n" );
2912+
29142913
reset:
29152914
#if !defined(_WIN32)
29162915
if( received_sigterm )

0 commit comments

Comments
 (0)