mbedtls/programs
Manuel Pégourié-Gonnard 4fa619fe56 Fix race condition in error printing in ssl_server2.c
The race goes this way:
1. ssl_recv() succeeds (ie no signal received yet)
2. processing the message leads to aborting handshake with ret != 0
3. reset ret if we were signaled
4. print error if ret is still non-zero
5. go back to net_accept() which can be interrupted by a signal
We print the error message only if the signal is received between steps 3 and
5, not when it arrives between steps 1 and 3.

This can cause failures in ssl-opt.sh where we check for the presence of "Last
error was..." in the server's output: if we perform step 2, the client will be
notified and exit, then ssl-opt.sh will send SIGTERM to the server, but if it
didn't get a chance to run and pass step 3 in the meantime, we're in trouble.

The purpose of step 3 was to avoid spurious "Last error" messages in the
output so that ssl-opt.sh can check for a successful run by the absence of
that message. However, it is enough to suppress that message when the last
error we get is the one we expect from being interrupted by a signal - doing
more could hide real errors.

Also, improve the messages printed when interrupted to make it easier to
distinguish the two cases - this could be used in a testing script wanted to
check that the server doesn't see the client as disconnecting unexpectedly.
2018-01-25 11:27:24 +01:00
..
aes Correct comment 2017-07-28 22:28:08 +01:00
hash Put clang analyzer fix inside __clang_analyzer__ guard 2016-05-23 14:29:31 +01:00
pkey Address issues found by coverity 2018-01-10 07:30:47 +00:00
random Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl Fix race condition in error printing in ssl_server2.c 2018-01-25 11:27:24 +01:00
test Merge remote-tracking branch 'public/pr/1136' into development 2017-12-26 10:42:20 +01:00
util Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509 Improve output on bad cmd line args in programs/x509/cert_write 2017-10-03 14:56:04 +01:00
.gitignore Add new program to gitignore 2015-11-02 06:34:29 +09:00
CMakeLists.txt - Added missing subdirectory line for util 2012-09-25 08:19:18 +00:00
Makefile Add example program for Curve25519 2015-10-09 12:13:29 +01:00
wince_main.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00