Age | Commit message (Collapse) | Author |
|
|
|
In binary matching, there must only be one "tail segment" (i.e.
a size-less segment of type binary) and it must be last. Thus,
the compiler will reject the following function definition:
foo(<<A/bits,B/bits>>) -> ok.
But code such as the following:
[42 || <<_:8/integer, _/bits>> <= Bits]
will internally (in the Core Erlang format) be translated to a
binary matching pattern containing two tail segments. The compiler
happens to generate correct code anyway (later passes will get
rid of the redundant tail segment), but it is ugly and will
confuse tools such as Dialyzer.
Change the transformation of binary generators (in both list and
binary comprehensions) not to generate add a tail segment if there
already is one.
|
|
In the code for handling binary generators (in list and binary
comprehensions), factor out the code for appending a match-all tail
segment onto a pattern into a separate function. That will only
make the code somewhat simpler, but will facilitate fixing a
bug/misfeture in the next commit.
|
|
|
|
* maint-r13:
Add test suites for (most) CORBA applications
|
|
|
|
* ia/ssl-asn1-spec-dss-params/OTP-7884:
Handling of DSA key parameters
|
|
|
|
* pl/observer-installation:
Fix installation of example file in lib/observer
OTP-8857
|
|
* ta/eliminate-warnings:
mnesia: Do not auto-import error/2
hipe: Do not auto-import min/2 and max/2
edoc: Do not auto-import error/1
OTP-8855
|
|
|
|
* vd/otpmbox_hash:
add OtpMbox.hash() method
OTP-8854
|
|
DSS-Params may be null in a certificate as it can inherit the
parameters.
Also ignore CA-certs that do not follow ASN-1 spec in RFC 5280.
|
|
The OtpMbox class was missing the hash() method while overriding
equals(). This can cause problems when using jinterface in a
larger Java application.
|
|
|
|
../lars_otp into maint-r13
* 'lars/xmerl/validation-of-empty-element/OTP-8599' of ../lars_otp:
An empty element declared as simpleContent was not properly validated.
|
|
|
|
* ia/fix-dialyzer-specs:
Corrected and added dialyzer specs
|
|
Files (actually one file - multitrace.erl), marked as EXAMPLE_FILES are
installed into $(RELSYSDIR)/src which is inconsistent with installation
procedure for other example file in other modules.
This file should be installed into $(RELSYSDIR)/examples directory.
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
Make it explicit that the shutdown timeout is to be specified in
milliseconds.
|
|
Resolve name clash with auto-imported BIF error/2.
|
|
Resolve name clash with auto-imported BIFs min/2 and max/2.
|
|
Resolve name clash with auto-imported BIF error/1.
|
|
|
|
Remove cleartool invocation and adapt docs to reflect git transition.
|
|
|
|
|
|
* 'egil/fix-ei-on-vxwork/OTP-8838' of ../egil_otp:
Fix ei to build on vxworks
|
|
* 'bmk/inets/prepare_for_r14b' of ../bmk_otp:
Prepare release for inets-5.5 (R14B).
|
|
* 'bmk/snmp/prepare_for_r14b' of ../bjorn_otp:
Prepare for R14B
|
|
* 'bmk/megaco/prepare_for_r14b' of ../bjorn_otp:
Prepare release of megaco-3.15 (R14B)
|
|
|
|
|
|
|
|
|
|
* pan/epmd-vulnerabilities/OTP-8780:
Teach testcases to survive TIME_WAIT overload
Update erl_interface doc and testsuite for epmd changes
Restore null termination of input buffer
Teach testcase epmd_SUITE:too_large to accept econnaborted
Teach epmd_cli.c to not respond 'Killed' when killing denied
Calculate minimal packet size for ALIVE2 requests correctly
Document epmd and it's options properly and fixup help text
Fix anomalies in epmd not yet reported as security issues
Remove two buffer overflow vulnerabilities in EPMD
Remove all support for ancient EPMD protocol
Remove very old protocol from EPMD
Conflicts:
lib/erl_interface/src/epmd/epmd_port.c
|
|
* sv/ei-writev:
fix incorrect writev iovec buffer handling in ei
OTP-8837
|
|
* rickard/timer-wheel/OTP-8835:
Use mutex instead of rwlock
|
|
* pan/windows-testcases/OTP-8820:
Teach Winsock initialization to be thread safe
Make ei_threaded_send synchronized
Increase timeout value in ei_accept_SUITE
Teach ei_accept_SUITE to wait for node publish instead of using random sleeps
Teach port suite to not use unix-specific commands and not leave them running
Add line macros to gen_udp_SUITE:connect
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* egil/ei/fix-declspec/OTP-8826:
Remove USE_DECLSPEC_THREAD from erl_interface
|
|
* ia/public_key-subject-alternative-name/OTP-8825:
Improved certificate extension handling
Add handling of SubjectAltName of type otherName
|
|
For platforms that support writev, ei uses iovec structures to be able
to easily send noncontiguous data buffers. When sending large
messages, the socket can of course block, in which case ei adjusts its
iovecs to pick up where it left off when the socket becomes writeable
again. Unfortunately the code that handled the case when the number of
bytes written are less than the current iovec size adjusted only the
iovec byte count but not the iovec data pointer, resulting in the same
data being sent multiple times.
The fix is trivial: in addition to subtracting the count of bytes
already written from the current iovec's size, also increment the
current iovec's data pointer by the number of bytes already written.
Tested manually on Linux and verified to fix a problem detected in
production with writing large binaries from a cnode to a regular
node. No unit tests were added, however, because they use the local
loopback which acts more like a pipe than an inter-host TCP
connection. The closing of the TCP window on the receiving side and
the resultant write blocking on the socket, which in turn caused the
code that mishandled the iovecs to be exercised, could unfortunately
not be readily duplicated in the erl_interface test suite.
|
|
* pan/binary-bif-valgrind-leak/OTP-8823:
Teach erl_bif_binary not leak memory by doing malloc(0)
|
|
|