Age | Commit message (Collapse) | Author |
|
The io_list_len() function returns an int, where a negative return
value indicates a type error. One problem is that an int only consists
of 32 bits in a 64-bit emulator. Changing the return type to Sint
will solve that problem, but in the 32-bit emulator, a large iolist
and a iolist with a type error will both return a negative number.
(Noticed by Jon Meredith.)
Another problem is that for iolists whose total size exceed the
word size, the result would be truncated, leading to a subsequent
buffer overflow and emulator crash.
Therefore, introduce the new erts_iolist_size() function which
returns a status indication and writes the result size through
a passed pointer. If the result size does not fit in a word,
return an overflow indication.
|
|
Use of Uint instead of UWord could cause overflow errors on systems
with large memory use.
|
|
|
|
Also add 'low' field in system_info(allocator)
SHORT_LIVED is still in low memory
|
|
* egil/file-write/OTP-9276:
Update prim_file.beam
Remove unnecessary copy in prim_file:drv_command/3
|
|
|
|
Conflicts:
erts/emulator/beam/erl_printf_term.c
|
|
This one is less likely to provoke error as one of the terms is
always NULL-based.
|
|
|
|
|
|
Also rename the fun_to_port/1 test case to outputv_errors/1 and
test sending more kinds of bad data to an outputv-enabled driver.
|
|
* jf/run_erl-disable-flow-control:
Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control
OTP-9270
|
|
io_list_vec_len() is slightly more general than it needs to be.
Specifically:
* The only caller always passes ERL_SMALL_IO_BIN_LIMIT as the
value for the bin_limit parameter, so the bin_limit parameter
can be eliminated.
* The only caller never passes any NULL pointers, so there is
no need test the pointers before writing through them.
|
|
* ta/inet_drv-cleanup:
inet_drv: remove unused tcp request id
inet_drv: remove gratuitous assignment
OTP-9263
|
|
* ms/beam-fix-format-specifiers-in-erl_exit-msg:
Fix format specifiers in erl_exit messages
OTP-9262
|
|
Conflicts:
erts/vsn.mk
|
|
iolist_size/1 would silently return a truncated result for iolists
whose size exceeded the word size. For example:
iolist(lists:duplicate(256, <<0:(1 bsl 24)/unit:8>>)).
would return 0 (instead of 4294967296 or 1 bsl 32).
Rewrite iolist_size/1 to accumulate the size in a bignum if
necessary and result the correct result.
|
|
|
|
In older releases of Erlang/OTP, the '=:=' operator could run out
of stack if used to compare very deep lists. Since that problem
has been fixed, we can remove the workaround used in the deep/1
test case.
|
|
|
|
|
|
Flow control can cause unwanted behaviour of the beam process,
if accidentally hit Ctrl-S (instead of Ctrl-D to detach) the
entire beam may be blocked.
Fix this problem by making it possible to turn off flow
control by setting the environment variable RUN_ERL_DISABLE_FLOWCNTRL.
|
|
* ta/driver_entry-typo:
driver_entry: Remove gratuitous paren and fix typo
OTP-9254
|
|
|
|
|
|
* ks/prim_file-fixes:
add prim_file.beam
Driver names should be strings, not atoms
Cleanup and cosmetic changes
OTP-9253
|
|
* ms/unsigned-integer-overflow-in-error:
Unsigned integer may overflow in error message
OTP-9251
|
|
* ms/file-fix-hang-reading-compressed-files:
file: fix hang reading compressed files
OTP-9245
|
|
* sverker/code_SUITE-false_dependency-bug:
Fix bug in test case code_SUITE:false_dependency
|
|
* sverker/enif_is_exception/OTP-9150:
add support for checking if an ERL_NIF_TERM is an exception
|
|
* sverker/erts_printf-halfword:
erts_printf %be to print integers of size Eterm
Fix use of type BeamInstr in hipe_debug.c
Conflicts:
erts/emulator/hipe/hipe_debug.c
|
|
|
|
|
|
|
|
|
|
* ms/heart-rem-garbage-append:
heart: remove garbage appended to heart command
OTP-9224
|
|
Conflicts:
erts/vsn.mk
|
|
* hw/fix-epmd-perror:
Fix epmd's dbg_perror() output
OTP-9223
|
|
|
|
* bjorn/erts/remove-init_get_args-doc/OTP-9209:
Remove documentation for non-existent init:get_args/0
|
|
|
|
* rickard/process-status/OTP-9197:
Fix thread unsafe access
Fix lost wakeup when process garbage collected by other
Only set status P_WAITING when needed
Add testcase for process_info() badarg bug
|
|
|
|
Fix thread unsafe access to process status field introduced in OTP-9125.
|
|
|
|
The status of a process was unnecessarily set to waiting before
the process was enqueued in a run queue. This bug was harmless
up until OTP-R14B01. In OTP-R14B02 erlang:hibernate/3 was fixed
(OTP-9125). After the introduction of OTP-9125, the previously
harmless process status bug sometimes caused erroneous badarg
exceptions from process_info().
|
|
init:get_args/0 was deprecated in R9C and removed in R12B.
Reported-by: Eric Pailleau
|
|
* ms/epmd-local-access-check:
epmd: include host address in local access check
OTP-9214
|
|
* hw/epmd-bind-to-address:
Allow user to specify the IP address epmd binds to
OTP-9213
|
|
|