aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2011-05-10Replace io_list_len() with erts_iolist_size()Björn Gustavsson
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.
2011-05-06Make port_command/2 reject non-byte sized bitstringsBjörn Gustavsson
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.
2011-05-06io.c: Make io_list_vec_len() less generalBjörn Gustavsson
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.
2011-05-04iolist_size/1: Fix truncation of resultBjörn Gustavsson
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.
2011-05-04Test iolist_size/1 with bad argumentsBjörn Gustavsson
2011-05-04binary_SUITE: Remove workaround for avoiding stack overflowBjörn Gustavsson
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.
2011-05-02Merge branch 'ta/driver_entry-typo' into devHenrik Nord
* ta/driver_entry-typo: driver_entry: Remove gratuitous paren and fix typo OTP-9254
2011-04-29Merge branch 'ks/prim_file-fixes' into devHenrik Nord
* ks/prim_file-fixes: add prim_file.beam Driver names should be strings, not atoms Cleanup and cosmetic changes OTP-9253
2011-04-29Merge branch 'ms/unsigned-integer-overflow-in-error' into devHenrik Nord
* ms/unsigned-integer-overflow-in-error: Unsigned integer may overflow in error message OTP-9251
2011-04-28Merge branch 'ms/file-fix-hang-reading-compressed-files' into devHenrik Nord
* ms/file-fix-hang-reading-compressed-files: file: fix hang reading compressed files OTP-9245
2011-04-27Merge branch 'sverker/code_SUITE-false_dependency-bug' into devSverker Eriksson
* sverker/code_SUITE-false_dependency-bug: Fix bug in test case code_SUITE:false_dependency
2011-04-27Merge branch 'sverker/enif_is_exception/OTP-9150' into devSverker Eriksson
* sverker/enif_is_exception/OTP-9150: add support for checking if an ERL_NIF_TERM is an exception
2011-04-27Merge branch 'sverker/erts_printf-halfword' into devSverker Eriksson
* 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
2011-04-27add prim_file.beamHenrik Nord
2011-04-27Driver names should be strings, not atomsKostis Sagonas
2011-04-27Cleanup and cosmetic changesKostis Sagonas
2011-04-26driver_entry: Remove gratuitous paren and fix typoTuncer Ayaz
2011-04-15Merge branch 'ms/heart-rem-garbage-append' into devHenrik Nord
* ms/heart-rem-garbage-append: heart: remove garbage appended to heart command OTP-9224
2011-04-14Merge branch 'maint-r14' into devSverker Eriksson
Conflicts: erts/vsn.mk
2011-04-14Merge branch 'hw/fix-epmd-perror' into devHenrik Nord
* hw/fix-epmd-perror: Fix epmd's dbg_perror() output OTP-9223
2011-04-12Merge branch 'bjorn/erts/remove-init_get_args-doc/OTP-9209' into devBjörn Gustavsson
* bjorn/erts/remove-init_get_args-doc/OTP-9209: Remove documentation for non-existent init:get_args/0
2011-04-11Prepare releaseErlang/OTP
2011-04-11Merge branch 'rickard/process-status/OTP-9197' into maint-r14Erlang/OTP
* 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
2011-04-11Fix thread unsafe accessRickard Green
Fix thread unsafe access to process status field introduced in OTP-9125.
2011-04-11Fix lost wakeup when process garbage collected by otherRickard Green
2011-04-11Only set status P_WAITING when neededRickard Green
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().
2011-04-11Remove documentation for non-existent init:get_args/0Björn Gustavsson
init:get_args/0 was deprecated in R9C and removed in R12B. Reported-by: Eric Pailleau
2011-04-08Merge branch 'ms/epmd-local-access-check' into devHenrik Nord
* ms/epmd-local-access-check: epmd: include host address in local access check OTP-9214
2011-04-08Merge branch 'hw/epmd-bind-to-address' into devHenrik Nord
* hw/epmd-bind-to-address: Allow user to specify the IP address epmd binds to OTP-9213
2011-04-07Remove truncation error in key comparision for ordered setPatrik Nyblom
2011-04-07Merge branch 'ta/erts-unused-vars' into devHenrik Nord
* ta/erts-unused-vars: erts: Remove unused variables OTP-9205
2011-04-07file: fix hang reading compressed filesMichael Santos
The gzio driver goes into an infinite loop when reading past the end of a compressed file. Reported-By: Alex Morarash
2011-04-07Unsigned integer may overflow in error messageMichael Santos
2011-04-07Add testcase for process_info() badarg bugRickard Green
2011-04-06Fix bug in test case code_SUITE:false_dependencySverker Eriksson
Causing out-of-memory on halfword emulator.
2011-04-06heart: remove garbage appended to heart commandMichael Santos
heart:get_cmd/0 is documented to return an empty string if the command is cleared. get_cmd/0 returns 2 extra bytes: 1 byte for the trailing null, 1 byte from the op (the op is an unsigned char and 2 bytes are allocated for it in the returned buffer). 1> heart:get_cmd(). {ok,[0,0]} 2> heart:set_cmd("echo hello"). ok 3> heart:get_cmd(). {ok,[101,99,104,111,32,104,101,108,108,111,0,0]} 4> heart:clear_cmd(). ok 5> heart:get_cmd(). {ok,[0,99]}
2011-04-05Merge branch 'ks/hipe-ppc64' into devHenrik Nord
* ks/hipe-ppc64: Enable HiPE by default when compiling for PPC64 Translate RTL to PPC code on PPC64 too Changes in ppc files for PPC64 Additions for the PPC64 backend Changes for the PPC64 backend Added loader for ppc64 New files for the 64-bit backends Cleanup tags OTP-9198
2011-04-05Merge branch 'pan/run_erl_race_creating_fifo/OTP-9164' into devPatrik Nyblom
* pan/run_erl_race_creating_fifo/OTP-9164: Fix race in pipe creation. Two simultaneous node starts caused failure
2011-04-05Merge branch 'egil/estone-exported-fix' into devBjörn-Egil Dahlberg
* egil/estone-exported-fix: Fix unexported function in estone testcase
2011-04-05Merge branch 'cg/fix-pointer-dereference' into devHenrik Nord
* cg/fix-pointer-dereference: Fix some wrong pointer dereferences OTP-9194
2011-04-04Merge branch 'ta/driver_entry-typos-re' into devHenrik Nord
* ta/driver_entry-typos-re: Remove gratuitous paren in driver_entry OTP-9192
2011-04-04Fix unexported function in estone testcaseBjörn-Egil Dahlberg
2011-04-04Merge branch 'gl/erts-doterlang-docs' into devHenrik Nord
* gl/erts-doterlang-docs: Add back documentation on .erlang processing OTP-9189
2011-04-01Merge branch 'sverker/config-hipe-halfword-prevent' into devSverker Eriksson
* sverker/config-hipe-halfword-prevent: Prevent configuration of hipe and halfword emulator together
2011-03-30Remove gratuitous paren in driver_entryTuncer Ayaz
2011-03-30Merge branch 'hw/call-chmod-without-f' into devHenrik Nord
* hw/call-chmod-without-f: Call chmod without the "-f" flag Conflicts: erts/emulator/test/Makefile lib/asn1/test/Makefile lib/crypto/test/Makefile lib/debugger/test/Makefile lib/docbuilder/test/Makefile lib/edoc/test/Makefile lib/erl_interface/test/Makefile lib/inviso/test/Makefile lib/parsetools/test/Makefile lib/percept/test/Makefile lib/ssl/test/Makefile lib/syntax_tools/test/Makefile lib/test_server/test/Makefile lib/tools/test/Makefile OTP-9170
2011-03-29Fix race in pipe creation. Two simultaneous node starts caused failurePatrik Nyblom
2011-03-29Fix duplicate entries in stacktraces after calling certain BIFsBjörn Gustavsson
Calling a BIF thaf is called as a function (such as process_info/{1,2}) would leave a non-zero value in c_p->cp, which would lead to duplicate entries in the stacktrace.
2011-03-29BEAM loader: Simplify handling of the func_info/3 instructionBjörn Gustavsson
For some historical reason, the transformation of a func_info/3 instruction to the internal i_func_info/4 instruction is more involved than it needs to be. Remove the gen_func_info() function in the loader and use a simple transformation.
2011-03-25Merge branch 'pan/valgrind_xml_log' into devPatrik Nyblom
* pan/valgrind_xml_log: Make xml valgrind messages end up in xml log OTP-9079