Age | Commit message (Collapse) | Author |
|
|
|
|
|
* hans/ssh/remove_dead_files/OTP-15028:
ssh: Remove unused ssh_client_key.erl and ssh_server_key.erl
|
|
|
|
|
|
* hans/ssh/server_exit_normal_exit/OTP-15018:
ssh: Fix server crashes for exit-normal signals
|
|
- Add proper handling of path() as the first argument to
httpd:reload_config/2.
Change-Id: Ia5779bdd55bff974e8eb0dd16ef26edf1f52fcff
|
|
* lukas/erts/seq_tracer_nif/OTP-15029:
Fix seq_trace erl_tracer bug
Fix makefile mkdir warning
|
|
* john/erts/fix-sbwt-links:
Fix seealso tags for +sbwt/+swt
|
|
|
|
Compiling OTP-20.3.4 with GCC-7 generates the following warning:
CC /tmp/otp_src_20.3.4/lib/erl_interface/obj.st/x86_64-unknown-linux-gnu/erl_marshal.o
legacy/erl_marshal.c: In function 'erl_init_marshal':
legacy/erl_marshal.c:110:5: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
memset(cmp_array, 0, CMP_ARRAY_SIZE);
^~~~~~
CMP_ARRAY_SIZE (256) is the number of elements in that array, but the
elements are not char but enum, which is 4 bytes on e.g. x86-64.
This results in 3/4 of the array not being correctly initialized.
Idiomatic C is to pass sizeof cmp_array to memset(), so that's what I did.
|
|
Sending a large term to the error logger has two problems related
to the size and sign of the variables used to represent lengths:
- the API functions (erts_send_error_term_to_logger() et al) perform
an unchecked narrowing conversion from size_t to int when passing
dsbufp->str_len to the internal functions; this may both truncate
the length and make it negative
- do_send_term_to_logger() and do_send_to_logger() multiply the
int-typed length by 2 before widening it to Uint and adding a few
more values; the intermediate product may overflow causing loss
of high bits and a change of sign; if the intermediate product is
negative the final size will be an extremely large positive value
The end result is that the computed buffer size can be arbitrarily
wrong, either too small or too large.
While reviewing this code I also found and fixed a potential narrowing
bug in erts_set_hole_marker().
|
|
and not the name. For more sane named table semantics.
Applies to both select/1 continuation and trap context.
|
|
where argument 'list' is the first candidate (not list->next).
Also simplified db_first_hash().
|
|
There is no NULL check here !?
|
|
|
|
and instead test for mprotect which is what is uses.
The use of MAP_NORESERVE for hipe code allocations
was removed in 8fd6e3353b094aa94e37e257ee20cd5e0e5dddcb.
|
|
Optimize performance of float_to_list/2
|
|
|
|
proc->run_queue detected as uninitialized by valgrind
but seems harmless in practice as it's not used for proxy processes.
"Bug" introduced in OTP-17 by ca0425c6ff85262bc15367f5fd9cbc51cde52b20
and made worse (but still harmless) in master for OTP-21
at fbb10ebc4a37555c7ea7f99e14286d862993976a.
|
|
|
|
Deprecate erlang:get_stacktrace/1
|
|
* maint:
Updated OTP version
Prepare release
inets: Fix broken httpc options handling
ssh: Fix server crashes for exit-normal signals
ssh: Fix ssh_sftpd:handle_op not returning State
Conflicts:
OTP_VERSION
|
|
* maint-20:
Updated OTP version
Prepare release
erl_interface: Optimize latin1_to_utf8 and friend
inets: Fix broken httpc options handling
erl_interface: Fix ei_connect
ssh: Fix server crashes for exit-normal signals
ssh: Fix ssh_sftpd:handle_op not returning State
ic: Optimize oe_ei_encode_atom
|
|
|
|
|
|
Make stacktraces consistent when backtrace_depth is 0
|
|
into aclocal.m4 as LM_HARDWARE_ARCH
|
|
into master
as'sverker/master/optimize-atom-enc-dec/ERIERL-150'
|
|
|
|
|
|
|
|
* sverker/optimize-atom-enc-dec/ERIERL-150/OTP-15023:
erl_interface: Optimize latin1_to_utf8 and friend
ic: Optimize oe_ei_encode_atom
|
|
maint-20
* sverker/erl_interface/ei_connect-erange-fix/OTP-15022:
erl_interface: Fix ei_connect
|
|
* peterdmv/httpc_options_handling/ERL-441/OTP-15007:
inets: Fix broken httpc options handling
|
|
* hans/ssh/server_exit_normal_exit_20/OTP-15018:
ssh: Fix server crashes for exit-normal signals
|
|
* hans/ssh/sftpd_rm_dir_err_20/OTP-15004:
ssh: Fix ssh_sftpd:handle_op not returning State
|
|
to do word wise check/copy for pure ASCII
if ARCH allows it (x86 and amd64).
|
|
* hans/ssh/cuddle_tests:
ssh: Declare serial for three test cases
ssh: Increase timetrap for slow test machines
|
|
* bjorn/compiler/core_lint:
core_lint: Handle repeated variables in map patterns correctly
|
|
|
|
|
|
- Add support for setting socket options per request.
- Add http_ipv6 test group.
Change-Id: Ia2aca37c0b5fe64a41995c79ae3399434b17ab8a
|
|
It is allowed to set the backtrace depth to 0, but when
an exception is catched the stacktrace will still contain
one element:
1> erlang:system_flag(backtrace_depth, 0).
8
2> catch error(badarg).
{'EXIT',{badarg,[{shell,apply_fun,3,
[{file,"shell.erl"},{line,908}]}]}}
However, when an exception is raised using `erlang:raise/3`, there
will be no elements in the stacktrace:
3> catch erlang:raise(error, badarg, [{fake,name,[arg],[]}]).
{'EXIT',{badarg,[]}}
Since the `error_handler` module uses `erlang:raise/3` to
raise an exception when an undefined function is called,
there will not be any stacktrace when calling an undefined
function:
4> catch undef_module:undef_name(some_argument).
{'EXIT',{undef,[]}}
Fix this inconsistency by changing `erlang:raise/3` so that
it always includes one element in the stacktrace:
3> catch erlang:raise(error, badarg, [{fake,name,[arg],[]}]).
{'EXIT',{badarg,[{fake,name,[arg],[]}]}}
4> catch undef_module:undef_name(some_argument).
{'EXIT',{undef,[{undef_module,undef_name,[some_argument],[]}]}}
|
|
* dgud/wx/glcanvas-improvements:
Add new "constants" to wxGLCanvas
|
|
Allow building with wxWidgets-3.1.1
OTP-15027
|
|
* maint:
Updated OTP version
Prepare release
Update appup file for sasl
Fix bug in hybrid boot file used for restart_new_emulator
Conflicts:
OTP_VERSION
lib/sasl/src/sasl.appup.src
|
|
* maint-20:
Updated OTP version
Prepare release
Update appup file for sasl
Fix bug in hybrid boot file used for restart_new_emulator
|
|
christhekeele/remove-trace-terms-from-table-types-in-match-docs
Remove trace-specific terms from docs for table-oriented matchspecs
|
|
This removes the matchspec instructions `is_seq_trace` and `get_tcw/0`
from the documentation for table-oriented matchspecs.
This is likely correct as both are already documented under "Functions
Allowed Only for Tracing", despite appearing in the list of possible
options for table specs.
The following observations further back this change up:
```erl
erlang:match_spec_test([whatever], [{'_', [], [{is_seq_trace}]}], trace).
%=> {ok,true,[],[]}
erlang:match_spec_test({whatever}, [{'_', [], [{is_seq_trace}]}], table).
%=> {error,[{error,"Special form 'is_seq_trace' used in wrong %dialect."}]}
erlang:match_spec_test([whatever], [{'_', [], [{get_tcw}]}], trace).
%=> {ok,true,[],[]}
erlang:match_spec_test({whatever}, [{'_', [], [{get_tcw}]}], table).
%=> {error,[{error,"Function get_tcw/0 cannot be called in this context."}]}
```
|