aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-03-06beam_validator: Express test_arity/is_tagged_tuple as type testsJohn Högberg
This ensures that unreachable branches are properly ignored on repeated checks (although tuple type subtraction isn't complete yet).
2019-03-06beam_validator: Fix type subtraction on select_* and inequalityJohn Högberg
Type subtraction never resulted in the 'none' type, even when it was obvious that it should. Once that was fixed it became apparent that inequality checks also fell into the same subtraction trap that the type pass warned about in a comment. This then led to another funny problem with select_val, consider the following code: {bif,'>=',{f,0},[{x,0},{integer,1}],{x,0}}. {select_val,{x,0},{f,70},{list,[{atom,false},{f,69}, {atom,true},{f,68}]}}. The validator knows that '>=' can only return a boolean, so once it has subtracted 'false' and 'true' it killed the state because all all valid branches had been taken, so validation would crash once it tried to branch off the fail label.
2019-03-06ssl: Verify CertificateVerifyPéter Dimitrov
Verify CertificateVerify message against the handshake context and the public key provided by the Certificate message. Remove 'Context' argument from state handler functions and store data in the state variable. Refactor get_handshake_context/1 to cover all implemented cases. Change-Id: If803e05009331d1ec7e0ba2ea2b81d917a0add6d
2019-03-06beam_emu.c: Rename the confusing macro GetR() to GetSource()Björn Gustavsson
2019-03-05Updated OTP versionOTP-21.2.7Erlang/OTP
2019-03-05Prepare releaseErlang/OTP
2019-03-05Merge branch 'lukas/erts/fix_inet_buffer_auto_adjust/OTP-15651/OTP-15652' ↵Erlang/OTP
into maint-21 * lukas/erts/fix_inet_buffer_auto_adjust/OTP-15651/OTP-15652: kernel runtime dependency to erts erts: Add yield via timeout to inet read_packet erts: Don't increase buffer when sctp sndbuf is set erts: Only change inet buffer if not set
2019-03-05Merge branch 'rickard/make-fixes-21/OTP-15551' into maint-21Erlang/OTP
* rickard/make-fixes-21/OTP-15551: Fix install phase in build system
2019-03-05Merge branch 'hans/ssh/cuddle_tests'Hans Nilsson
* hans/ssh/cuddle_tests: crypto: Filter test case ciphers for supported ones
2019-03-05ftp: Fix timing bugIngela Anderton Andin
Change code to not send a message to itself as this allows other messages to come in between. A change in TLS code made this scenario more likely to happen, and the symptom is that the ftp:chunk_recv/1 function hangs.
2019-03-05Merge branch 'rickard/bootstrap-build-fix'Rickard Green
* rickard/bootstrap-build-fix: Fix build of bootstrap
2019-03-05Fix build of bootstrapRickard Green
2019-03-05beam_validator: Style fix for asserts in list comprehensionsJohn Högberg
2019-03-05beam_validator: Infer types from bs_put instructionsJohn Högberg
2019-03-05beam_validator: is_map no longer needs special treatmentJohn Högberg
2019-03-05beam_validator: Refactor type conflict resolutionJohn Högberg
The current type conflict resolution works well for the example case in the comment, but doesn't handle branched code properly, consider the following: {label,2}. {test,is_tagged_tuple,{f,ignored},[{x,0},3,{atom,r}]}. {allocate_zero,2,1}. {move,{x,0},{y,0}}. %% {y,0} is known to be {r, _, _} now. {get_tuple_element,{x,0},2,{x,0}}. {'try',{y,1},{f,3}}. %% ... snip ... {jump,{f,5}}. {label,3}. {try_case,{y,1}}. %% {x,0} is the error class (an atom), {x,1} is the error term. {test,is_eq_exact,{f,ignored},[{x,0},{y,0}]}. %% ... since tuples and atoms can't meet, the type of {y,0} is %% now {atom,[]} because the current code assumes the type %% we're updating with. {move,{x,1},{x,0}}. {jump,{f,5}}. {label,5}. %% ... joining tuple (block 2) and atom (block 3) means 'term', %% so the get_tuple_element instruction fails to validate %% despite this being unrechable from block 3. {test_heap,3,1}. {get_tuple_element,{y,0},1,{x,1}}. {put_tuple2,{x,0},{list,[{x,1},{x,0}]}}. {deallocate,2}. return. This commit kills the state on type conflicts, making unreachable instructions truly unreachable.
2019-03-05beam_validator: Refactor branch handlingJohn Högberg
While complex_test made certain branching instructions a lot easier to read, we're still using `branch_state` for many others which is hard to read and makes it impossible to "abort" branches on type conflicts. This commit replaces nearly all uses of `branch_state` with a general branching mechanism, improving readability and paving the way for proper type conflict resolution.
2019-03-05List sys:get_debug/3 in general deprecationsRaimo Niskanen
2019-03-05kernel runtime dependency to ertsRickard Green
2019-03-05stdlib: Correct and optimize pretty printing of stringsHans Bolinder
Avoid traversing all of the list/string when only part of it will be used. An explicit check that the list is flat is needed since string:slice() accepts deep lists and more.
2019-03-05Fix another broken doc linkRaimo Niskanen
2019-03-05Fix broken doc linkRaimo Niskanen
2019-03-05[socket] Make use of official monitor to term functionMicael Karlberg
Remove own function to make monitor printable (was a hack) and make use of the new enif_make_monitor_term instead.
2019-03-04Merge branch 'maint'Rickard Green
2019-03-04Merge branch 'rickard/emd2exml-fix-18/OTP-13621' into maintRickard Green
* rickard/emd2exml-fix-18/OTP-13621: Adjust generated XML so it respects current DTD
2019-03-04Adjust generated XML so it respects current DTDRickard Green
2019-03-04Merge branch 'maint'Rickard Green
2019-03-04Merge branch 'rickard/make-fixes-21/OTP-15551' into maintRickard Green
* rickard/make-fixes-21/OTP-15551: Fix install phase in build system
2019-03-04Merge branch 'rickard/make-fixes-22/OTP-15551'Rickard Green
* rickard/make-fixes-22/OTP-15551: Fix install phase in build system
2019-03-04Merge branch 'bmk/20190304/openindiana_types' into ↵Micael Karlberg
bmk/20190301/cleanup_through_macro_abuse/OTP-15565
2019-03-04[socket] Fixed various type size and unused function warningsMicael Karlberg
Fixed some type size warnings (SCTP related). E.g: On Solaris 11 (OpenIndiana Hipster) long and int is size 4, but the way Sint32 def works it first "tests" for long size and if that is correct, that is chosen (which it is on Solaris 11). On linux long is size 8, so Sint32 will be defined as int. ... On Solaris 11 the flags TCP_CONGESTION and SO_BINDTODEVICE does not exist, so the function(s) n[set|get]opt_str_opt is never used. So, in order to keep the compiler quiet, we add some if-def to exclude these functions in this case.
2019-03-04Merge 'rickard/make-fixes-21/OTP-15551' into 'rickard/make-fixes-22/OTP-15551'Rickard Green
* rickard/make-fixes-21/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
2019-03-04Merge 'rickard/make-fixes-20/OTP-15551' into 'rickard/make-fixes-21/OTP-15551'Rickard Green
* rickard/make-fixes-20/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
2019-03-04Merge 'rickard/make-fixes-19/OTP-15551' into 'rickard/make-fixes-20/OTP-15551'Rickard Green
* rickard/make-fixes-19/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
2019-03-04Merge 'rickard/make-fixes-18/OTP-15551' into 'rickard/make-fixes-19/OTP-15551'Rickard Green
* rickard/make-fixes-18/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
2019-03-04Merge 'rickard/make-fixes-17/OTP-15551' into 'rickard/make-fixes-18/OTP-15551'Rickard Green
* rickard/make-fixes-17/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
2019-03-04ssl: Test client authentication with certificatePéter Dimitrov
Change-Id: I09c0501ea790941001b11a3f6d12a96f18da2bea
2019-03-04ssl: Validate client certificates (TLS 1.3)Péter Dimitrov
Implement validation of client certificates in state 'wait_cert'. Implement state 'wait_cv'. Clean up handler functions. Change-Id: I5c410bf7afe34632f27fabcd61670764fedb105d
2019-03-04ssl: Test client authentication (empty cert)Péter Dimitrov
Test client authentication when client responds with empty Certificate. Change-Id: I725ae60c6d097ca13c5f4354e35377ecacf98dea
2019-03-04ssl: Implement state 'wait_cert'Péter Dimitrov
Implement state 'wait_cert' with its handler function do_wait_cert/2. Send CertificateRequest if peer verification is enabled. Send Alert 'certificate required' if client answers with empty Certificate and option 'fail_if_no_peer_cert' is set to true. Change-Id: I72c73bcb6bc68ea60e6fe41cdd29ccfe40d18322
2019-03-04ssl: Add ssl logger support for CertificateRequestPéter Dimitrov
Change-Id: I5fdade8474147d05bc12d28fec91a47d4fd6e73b
2019-03-04ssl: Fix ssl alertsPéter Dimitrov
Add missing alert to description_atom/1. Function clauses ordered by value of the alert. Change-Id: Ibb68ea261c42070c757b2815abd3f7b179880128
2019-03-04Fix install phase in build systemRickard Green
- Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
2019-03-04Merge pull request #2163 from filmor/float-etf-docSverker Eriksson
Clarify in the docs that (NEW_)FLOAT_EXT must be finite
2019-03-04[socket] Some minor cleanup and commentsMicael Karlberg
2019-03-04Merge branch 'peterdmv/ssl/hello-retry-request/OTP-15590'Péter Dimitrov
* peterdmv/ssl/hello-retry-request/OTP-15590: ssl: Fix type spec for handshake_history() ssl: Add tests for hello_retry_request and groups ssl: Implement 'hello_retry_request' Change-Id: I04ad2860d0ba81462a1e36c7d6fcee6bc5c98c32
2019-03-04Merge branch 'maint'Sverker Eriksson
2019-03-04Merge PR-2161 sverker/to_erl-utf8/ERL-854 OTP-15650 into maintSverker Eriksson
* sverker/to_erl-utf8/ERL-854: erts: Remove 7-bit ASCII limitation in to_erl
2019-03-04Merge PR-2160 'sverker/erl_docgen/prettify-cfunc-docs/OTP-15637' into maintSverker Eriksson
* sverker/erl_docgen/prettify-cfunc-docs/OTP-15637: erl_docgen: Prettify c-function argument lists erl_docgen: Indent c-function line continuations
2019-03-04Error on duplicated config apps/keys in -configJosé Valim
Continuation of d92eb79322. Erlang/OTP 21.3 warned on those cases and now we will raise on Erlang/OTP 22.0.