Add Visual Studio macros to erl_driver.h and ei.h
Fix efile_openfile() to handle stat() failure

If the initial stat() fails then efile_openfile() will still proceed
to open() the file.  If that succeeds and the caller passed a non-NULL
pSize, then it will copy bogus data from the statbuf into *pSize.  This
has been observed to cause file:read_file/1 to return truncated file
data with no error indication.

The use case involved a large file system mounted via NFS, with some
directories containing large number of files, and NFS mount options
that allow the NFS client to return EIO if the NFS server does not
respond quickly enough.  Depending on the caching state of the client
and server machines, a few stat() calls (fewer than 1 per 10 million)
would take long enough to trigger EIO errors, but subsequent open()
calls would succeed, and read_file/1 would return truncated data.  This
sequence of events has been observed via "strace" on beam.smp.

Signed-off-by: Mikael Pettersson <mikpelinux@gmail.com>
inets: Fix HTTP 1.0 body end on closed connection

Receiving HTTP response with no Content-length header and
with body ending on closed connection should give the complete
response body contents up to the last byte received.
crypto: Fix memory leak in hmac stream functions

The context was never deallocated.
crypto: Fix memory leak in some error cases

sign(dss,) and compute_key(dh,)
ssl: Prepare for release
ssl: Filter default ciphers for supported Crypto algorihms
SSL: in tests, filter ssl client ciphers for version compatibility

Some psk and some not yet supported anonymous suites are only supported
with TLS version >= 1.2. This adds them to the tests and makes sure
that they are not tested on TLS versions that do not support them.
SSL: fix OpenSSL known renegotiation bug detection

The OpenSSL detection match would actually consider all 1.0.1 versions
as affected when really only 1.0.1 - 1.0.1c are.
Merge branch 'ia/ssl/prep-release' into maint

* ia/ssl/prep-release:
  ssl: Prepare for release
SSL: always filter the full list of supported ciphers against the supported algorithms

With the addition of more ciphers that are not supported in all
configurations, using a manually prefiltered cipher list (e.g. EC vs.
non-EC ciphers) becomes to complex. Replace the manual split with
ssl_cipher:filter_suites/1 in all places.

Conflicts:

	lib/ssl/src/ssl.erl
	lib/ssl/src/tls_v1.erl
erts: Fix git version script
Merge branch 'lukas/erts/git_vsn_script_fix/OTP-11961' into maint

* lukas/erts/git_vsn_script_fix/OTP-11961:
  erts: Fix git version script
ssl: Workaround that gen_fsm does not call CB:format_status when CB:terminate
crashes.
Merge branch 'ia/ssl/default-ciphers/OTP-11966' into maint

* ia/ssl/default-ciphers/OTP-11966:
  ssl: Workaround that gen_fsm does not call CB:format_status when CB:terminate crashes.
  SSL: always filter the full list of supported ciphers against the supported algorithms
  ssl: Filter default ciphers for supported Crypto algorihms
Merge branch 'fenek/fix/vstudio_macro' into maint

* fenek/fix/vstudio_macro:
  Add Visual Studio macros to erl_driver.h and ei.h
Merge branch 'RoadRunnr/ssl/fix-tests' into maint

* RoadRunnr/ssl/fix-tests:
  SSL: fix OpenSSL known renegotiation bug detection
  SSL: in tests, filter ssl client ciphers for version compatibility
Merge branch 'mikpe/openfile-dont-use-undefined-statbuf' into maint

* mikpe/openfile-dont-use-undefined-statbuf:
  Fix efile_openfile() to handle stat() failure
Merge branch 'scrapinghub/stream_body_with_no_content_length' into maint

* scrapinghub/stream_body_with_no_content_length:
  inets: Fix HTTP 1.0 body end on closed connection
Merge branch 'sverk/crypto-leaking-hmac/OTP-11953' into maint

* sverk/crypto-leaking-hmac/OTP-11953:
  crypto: Fix memory leak in some error cases
  crypto: Fix memory leak in hmac stream functions