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>
doc: Move Maps reference documentation to expressions
Merge branch 'rolkar/fix-syntax_tools-revert-bug/OTP-11930' into maint

* rolkar/fix-syntax_tools-revert-bug/OTP-11930:
  Fix reverting map in syntax_tools
  Add test case to syntax_tools
Merge branch 'maint'
Merge branch 'ia/ssl/dubble-next-proto/OTP-11926' into maint

* ia/ssl/dubble-next-proto/OTP-11926:
  ssl: Fix dialyzer spec
  ssl: Only allow one next protocol handsake message
Merge branch 'maint'
Fix bug in SRP implementation

SRP didn't work with smaller primes as user secret was improperly
computed.

Formula is: (B - (k * g^x)) ^ (a + (u * x)) % N

Previously, the code computed a + (u * x) % N instead of a + (u * x).
a typically is a 256 bits random number (RFC 5054 says it should be at
least 256 bits), u and x are SHA1 signatures (160 bits). So a + (u * x)
can differ from a + (u * x) % N for N primes smaller than 320 bits.
Merge branch 'egil/move-maps-doc' into maint

* egil/move-maps-doc:
  doc: Move Maps reference documentation to expressions
Merge branch 'maint'
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.
Comment fix
Add check that request table is empty to failover suite

The way in which this suite causes transport connections to be broken -
by stopping the service - makes it prone to orphaning entries in the
request table, which is a bug we're about to fix.
Fix leaking request table

A new connection writes the pid to the table diameter_request. The
normal handling is that loss of a connection leads to a watchdog state
change in the service process, which removes the entry, but this usually
won't happen in the case of diameter:stop_service/1 since the service
process is terminated without waiting for watchdog transitions.

The request table should really be service-specific, so that the table
is deleted when the service is stopped, which requires passing the table
identifier into request processes and handling that the table may not
exist. Just clear out the service-specific entries at service process
termination for now.
Malformed macros in orber_iiop.hrl

A couple of macros were malformed, missing commas: PROFILEBODY_1_1_TYPEDEF
and PROFILEBODY_1_2_TYPEDEF
Fix watchdog table leak

Commit ef5fddcb (diameter-1.4.1, R16B) caused the leak in the case of an
accepting watchdog with restrict_connections = false. It (correctly)
ensured the state remained at INITIAL but a subsequent 'close' message
to terminate the process was ignored since the state was not DOWN. In
fact, no 'close' was sent since there was no state transition or
previous connection: the former triggers the message from
diameter_service, the latter from diameter_watchdog. The message is now
sent to self() from the watchdog itself.

Send 'close' in the same way when multiple connections to the same peer
are allowed, to avoid waiting for a watchdog timer expiry for the
process to terminate in this case.
Simplify sending of 'close' to watchdog

There's no need to send the message immediately if there's no transport
configuration since that in itself means the service process will tell
the watchdogs to die.
[ct] Add test of cover support when merge_tests=false
Change internal format of CoverInfo in test_server

This is in preparation of a future change of the cover API between
common_test and test_server.
Merge branch 'sverk/hipe-global-trace-bug'

OTP-11939

* sverk/hipe-global-trace-bug:
  erts: Remove some dead hipe specific code
  erts: Fix global tracing of beam function when called from hipe code
  erts: Save some space in process struct for hipe
Merge branch 'sverk/etp-block-fix' into maint

* sverk/etp-block-fix:
  erts: Fix bug in etp-block commands