Age | Commit message (Collapse) | Author |
|
|
|
|
|
Failing to recognize psk as an anonymous key exchange would fail the connection
when trying to decode an undefined certificate.
|
|
* maint-21:
Updated OTP version
Update release notes
Update version numbers
Eliminate a crash in the beam_jump pass
stdlib: Fix a 'chars_limit' bug
Fix a race condition when generating async operation ids
Fix internal compiler error for map_get/2
beam_type: Fix unsafe optimization
public_key: Remove moduli 5121 and 7167 Thoose were added by 598629aeba9de98e8cdf5637043eb34e5d407751 but are not universaly supported.
|
|
* maint-20:
Updated OTP version
Prepare release
kernel: Fix tick count bug when pending writes
kernel: Send tick to hidden node even if pending writes
ic: Fix buffer overrun bug in oe_ei_encode_atom
erl_interface: Fix simultaneous connection setup
|
|
|
|
|
|
* hasse/stdlib/fix_io_lib_pretty/OTP-15159:
stdlib: Fix a 'chars_limit' bug
|
|
maint-21
* bjorn/compiler/fix-beam_jump-crash/ERL-660/OTP-15166:
Eliminate a crash in the beam_jump pass
|
|
* bjorn/compiler/fix-map_get/OTP-15157:
Fix internal compiler error for map_get/2
|
|
maint-21
* bjorn/compiler/fix-skipped-matching/ERL-655/OTP-15156:
beam_type: Fix unsafe optimization
|
|
https://bugs.erlang.org/browse/ERL-660
|
|
Small fixes in syntax_tools
See also OTP-15165.
|
|
Fix typo in erl_parse type unary_op()
|
|
Use erlang:system_info(ets_count) and improve docs
|
|
|
|
* sverker/ic/encode-atom-overrun/ERIERL-191/OTP-15160:
ic: Fix buffer overrun bug in oe_ei_encode_atom
|
|
maint-20
* sverker/erl_interface/simultaneous-connect/OTP-15161:
erl_interface: Fix simultaneous connection setup
|
|
* sverker/kernel/tick-fixes/OTP-15162:
kernel: Fix tick count bug when pending writes
kernel: Send tick to hidden node even if pending writes
|
|
|
|
as c-nodes need ticks to send ticks.
|
|
Add support of non-whole-byte binaries to `abtract/1`, `concrete/1` and
`is_literal/1`. (They are literals in the beam file)
|
|
bug exists since OTP-20.3.4
1d3acb70debd134c8346b7e98347171d5cf6fc62
|
|
|
|
* hasse/stdlib/fix_erl_anno_usage:
stdlib: Add a few uses of erl_anno
|
|
|
|
Code such as that the following:
Val = map_get(a, Map),
Map#{a:=z} %Could be any map update
would incorrectly cause an internal consistency check failure:
Internal consistency check failed - please report this bug.
Instruction: {put_map_exact,{f,0},{x,0},{x,0},1,{list,[{atom,a},{atom,z}]}}
Error: {bad_type,{needed,map},{actual,term}}:
Update beam_validator so that it understands that the second
argument for map_get/2 is a map.
|
|
beam_type assumed that the operand for the bs_context_to_binary
instruction must be a binary. That is not correct;
bs_context_to_binary accepts anything. Based on the incorrect
assumption, beam_type would remove other test instructions.
The bug was introduced in eee8655788d2, which was supposed
to be just a refactoring commit.
https://bugs.erlang.org/browse/ERL-655
|
|
Thoose were added by 598629aeba9de98e8cdf5637043eb34e5d407751 but are not universaly supported.
|
|
* maint-21:
Updated OTP version
Prepare release
Fix unsafe optimization when running beam_block the second time
Fix environment case sensitivity issues on Windows
|
|
* maint-20:
Updated OTP version
Prepare release
ssh: Report the signal name if there is an exit-signal to sftpd
ssh: Bug fix sftp error codes
ssh: Fix ssh_xfer decode_ATTR error for Vsn=4
syntax_tools: Fix a bug regarding reverting map types.
Conflicts:
OTP_VERSION
lib/inets/doc/src/notes.xml
lib/inets/vsn.mk
lib/ssh/doc/src/notes.xml
lib/ssh/vsn.mk
lib/syntax_tools/doc/src/notes.xml
lib/syntax_tools/vsn.mk
otp_versions.table
|
|
|
|
The compiler would crash when compiling code such as:
serialize(#{tag := value, id := Id, domain := Domain}) ->
[case Id of
nil ->
error(id({required, id}));
_ ->
<<10, 1:16/signed, Id:16/signed>>
end,
case Domain of
nil ->
error(id({required, domain}));
_ ->
<<8, 2:16/signed, Domain:32/signed>>
end].
The crash would look like this:
Function: serialize/1
t.erl: internal error in block2;
crash reason: {badmatch,false}
in function beam_utils:live_opt/4 (beam_utils.erl, line 861)
in call from beam_utils:live_opt/1 (beam_utils.erl, line 285)
in call from beam_block:function/2 (beam_block.erl, line 47)
in call from beam_block:'-module/2-lc$^0/1-0-'/2 (beam_block.erl, line 33)
in call from beam_block:'-module/2-lc$^0/1-0-'/2 (beam_block.erl, line 33)
in call from beam_block:module/2 (beam_block.erl, line 33)
in call from compile:block2/2 (compile.erl, line 1358)
in call from compile:'-internal_comp/5-anonymous-1-'/3 (compile.erl, line 349)
The reason for the crash is an assertion failure caused by a previous
unsafe optimization. Here is the code before the unsafe optimization:
.
.
.
{bs_init2,{f,0},7,0,0,{field_flags,[]},{x,1}}.
{bs_put_string,3,{string,[8,0,2]}}.
{bs_put_integer,{f,0},{integer,32},1,{field_flags,[signed,big]},{y,1}}.
{move,{x,1},{x,0}}.
{test_heap,4,1}.
.
.
.
beam_block:move_allocate/1 moved up the test_heap/2 instruction past the
move/2 instruction, adjusting the number of live registers at the same
time:
.
.
.
{bs_init2,{f,0},7,0,0,{field_flags,[]},{x,1}}.
%% Only x1 is live now.
{bs_put_string,3,{string,[8,0,2]}}.
{bs_put_integer,{f,0},{integer,32},1,{field_flags,[signed,big]},{y,1}}.
{test_heap,4,2}. %Unsafe. x0 is dead.
{move,{x,1},{x,0}}.
.
.
.
This optimization is unsafe because the bs_init2 instruction killed
x0.
The bug is in beam_utils:anno_defs/1, which adds annotations indicating
the registers that are defined at the beginning of each block. The
annotation before the move/2 instruction incorrectly indicated that
x0 was live.
https://bugs.erlang.org/browse/ERL-650
https://github.com/elixir-lang/elixir/issues/7782
|
|
With DEBUG=true in erl_anno, erl_parse, and erl_pp a few (harmless)
non-opaque accesses of annotations were found.
|
|
|
|
* hans/ssh/sftp_ver4_xfer/ERIERL-199/OTP-15149:
ssh: Fix ssh_xfer decode_ATTR error for Vsn=4
|
|
* hans/ssh/sftp_error_codes/ERIERL-194/OTP-15148:
ssh: Report the signal name if there is an exit-signal to sftpd
ssh: Bug fix sftp error codes
|
|
maint-20
* hasse/syntax_tools/fix_map_type/OTP-15098/ERIERL-177:
syntax_tools: Fix a bug regarding reverting map types.
|
|
|
|
Report the signal name if the signal error message is ""
Do not report a return code of 0 as an error.
|
|
|
|
|
|
|
|
hans/ftp/21socket_opts/ERIERL-192/OTP-15120
Conflicts:
lib/ftp/src/ftp.erl
|
|
|
|
by also accepting status "ok_simultaneous".
|
|
|
|
|
|
* origin/henrik/Update-copyright:
Update copyright year
|
|
|