aboutsummaryrefslogtreecommitdiffstats
path: root/lib/erl_interface
AgeCommit message (Collapse)Author
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2011-02-22ei: buffer overflow when decoding atomsMichael Santos
2011-02-22erl_interface: fix buffer overflowsMichael Santos
2011-02-17Rename Suite Callback to Common Test HookLukas Larsson
2011-02-17Update and add cover spec files to work with common_testLukas Larsson
2011-02-17Update all test specsLukas Larsson
2011-02-17Fix formatting for erl_interfaceLukas Larsson
2011-02-17Add init_per_suite and end_per_suiteLukas Larsson
2011-02-17Add ts_install_scb to suite/0Lukas Larsson
2011-02-17Update erl_interface tests to conform with common_test standardLukas Larsson
2011-02-17Update all fin_per_testcase to end_per_testcase.Lukas Larsson
2011-01-03Merge branch 'vb/ei-exts' into devBjörn-Egil Dahlberg
* vb/ei-exts: Fix testcases erl_global_whereis, erl_global_names Fix wrong erl_compare_ext result comparing lists Correct erl_global{register, unregister} functions Add PID (~p) type parameters to ei_format Add char (~c) type parameters to ei_format OTP-9015 Conflicts: lib/erl_interface/include/ei.h
2010-12-30Fix testcases erl_global_whereis, erl_global_namesBjörn-Egil Dahlberg
Enable erl_global_whereis and erl_global names.
2010-12-15Remove ancient distribution message DOP_NODE_LINK from all codePatrik Nyblom
2010-12-10Fix wrong erl_compare_ext result comparing listsVitaliy Batichko
Function erl_compare_ext of erl_interface library returns 1 instead -1 when comparing lists like [0] and [0, 1000]. Credits to: Evgeny Khirin <evgeny.khirin <at> erlios.com>
2010-12-10Correct erl_global{register, unregister} functionsVitaliy Batichko
C node needs DFLAG_DIST_MONITOR flag set when connecting, and support for processing monitoring start/end messages received from counterpart, to make global registration actually work.
2010-12-08Add PID (~p) type parameters to ei_formatVitaliy Batichko
2010-12-08Add char (~c) type parameters to ei_formatVitaliy Batichko
2010-12-06Prepare releaseErlang/OTP
2010-11-30Fix ei_decode_SUITE:test_ei_decode_long for halfword vmSverker Eriksson
2010-11-25erl_interface: Fix erl_term_len for integers and refsSverker Eriksson
From R14B integers use all 32 bits of external format INTEGER_EXT. erl_term_len still had the 28-bit check and therefor returned a too large values (7 instead of 5) for integers of 29-32 bits. erl_term_len also returned a 2 bytes too small value for references.
2010-11-22Merge branch 'ms/ei-fixes' into devBjörn-Egil Dahlberg
* ms/ei-fixes: ei: check memory was allocated ei: error if return value of ei_alloc_big is NULL OTP-8943
2010-11-22Merge branch 'ms/ei-fix-node-name-overflow' into devBjörn-Egil Dahlberg
* ms/ei-fix-node-name-overflow: ei: check the length of the node name OTP-8943
2010-11-11Merge branch 'maint-r14' into devBjörn-Egil Dahlberg
2010-11-08Add release notes for erl_interface-3.7.1.1Björn-Egil Dahlberg
2010-11-08Fix faulty tracelevel in erl_interfaceBjörn-Egil Dahlberg
2010-10-29ei: check memory was allocatedMichael Santos
2010-10-29ei: error if return value of ei_alloc_big is NULLMichael Santos
2010-10-26ei: check the length of the node nameMichael Santos
Check the length of the node name to prevent an overflow.
2010-10-14Merge branch 'ms/fix-zero-byte-allocation' into devBjörn-Egil Dahlberg
* ms/fix-zero-byte-allocation: registry: fix zero byte allocation OTP-8893
2010-10-14Merge branch 'sv/ei-number-parsing' into devBjörn-Egil Dahlberg
* sv/ei-number-parsing: teach ei_x_format to handle unary - and + OTP-8891
2010-10-06teach ei_x_format to handle unary - and +Steve Vinoski
Teach the format string parser used for ei_x_format() and ei_x_format_wo_ver() about unary negative and positive operators on numbers. Previously, passing a negative numeric constant or a positive numeric constant with an explicit leading plus sign within the format string would cause these functions to fail. Augment the format_wo_ver unit test in the ei_format suite with a regression test for these cases. An easy way to reproduce the problem is to use erl_call: erl_call -s foo@bar -a 'erlang list_to_integer [-1]' Without this change, erl_call fails with a -1 exit status. With this change, it properly prints "-1".
2010-10-06registry: fix zero byte allocationMichael Santos
Pasto in code results in 0 bytes (instead of length bytes) being allocated when the length of the key exceeds the static buffer.
2010-10-06erl_call: remove get_hostentMichael Santos
get_hostent does not properly handle IPv4 addresses on little endian platforms and fails with hostnames beginning with a number. Remove get_hostent and use ei_gethostbyname directly since gethostbyname supports IPv4 addresses. Reported-By: Julien Barbot
2010-09-13Prepare releaseOTP_R14BErlang/OTP
2010-09-13Merge branch 'pan/epmd-vulnerabilities/OTP-8780' into devPatrik Nyblom
* pan/epmd-vulnerabilities/OTP-8780: Teach testcases to survive TIME_WAIT overload Update erl_interface doc and testsuite for epmd changes Restore null termination of input buffer Teach testcase epmd_SUITE:too_large to accept econnaborted Teach epmd_cli.c to not respond 'Killed' when killing denied Calculate minimal packet size for ALIVE2 requests correctly Document epmd and it's options properly and fixup help text Fix anomalies in epmd not yet reported as security issues Remove two buffer overflow vulnerabilities in EPMD Remove all support for ancient EPMD protocol Remove very old protocol from EPMD Conflicts: lib/erl_interface/src/epmd/epmd_port.c
2010-09-13Merge branch 'sv/ei-writev' into devBjörn-Egil Dahlberg
* sv/ei-writev: fix incorrect writev iovec buffer handling in ei OTP-8837
2010-09-13Teach Winsock initialization to be thread safePatrik Nyblom
2010-09-13Make ei_threaded_send synchronizedPatrik Nyblom
2010-09-13Increase timeout value in ei_accept_SUITEPatrik Nyblom
2010-09-13Teach ei_accept_SUITE to wait for node publish instead of using random sleepsPatrik Nyblom
2010-09-13Merge branch 'egil/ei/fix-declspec/OTP-8826' into devBjörn-Egil Dahlberg
* egil/ei/fix-declspec/OTP-8826: Remove USE_DECLSPEC_THREAD from erl_interface
2010-09-11fix incorrect writev iovec buffer handling in eiSteve Vinoski
For platforms that support writev, ei uses iovec structures to be able to easily send noncontiguous data buffers. When sending large messages, the socket can of course block, in which case ei adjusts its iovecs to pick up where it left off when the socket becomes writeable again. Unfortunately the code that handled the case when the number of bytes written are less than the current iovec size adjusted only the iovec byte count but not the iovec data pointer, resulting in the same data being sent multiple times. The fix is trivial: in addition to subtracting the count of bytes already written from the current iovec's size, also increment the current iovec's data pointer by the number of bytes already written. Tested manually on Linux and verified to fix a problem detected in production with writing large binaries from a cnode to a regular node. No unit tests were added, however, because they use the local loopback which acts more like a pipe than an inter-host TCP connection. The closing of the TCP window on the receiving side and the resultant write blocking on the socket, which in turn caused the code that mishandled the iovecs to be exercised, could unfortunately not be readily duplicated in the erl_interface test suite.
2010-09-10Remove USE_DECLSPEC_THREAD from erl_interfaceBjörn-Egil Dahlberg
DECLSPEC causes access violations on vista.
2010-09-08erl_call: fix multiple buffer overflowsMichael Santos
Check operations that can overflow, e.g., erl_call -sname $(perl -e 'print "x"x5000') perl -e 'print "-module(", "x"x10000, ");"' | erl_call -m -r -sname foo
2010-09-07Merge branch 'mk/net-dragonfly-bsd-patches' into devBjörn Gustavsson
* mk/net-dragonfly-bsd-patches: Remove unused variables Use proper install method Add support for DragonFly BSD Add support for NetBSD
2010-09-06Merge branch 'ms/ei-overflow-fix' into devBjörn-Egil Dahlberg
* ms/ei-overflow-fix: ei: prevent overflow in ei_connect_init/ei_xconnect OTP-8814
2010-08-31Update erl_interface doc and testsuite for epmd changesPatrik Nyblom
2010-08-31Remove all support for ancient EPMD protocolPatrik Nyblom
2010-08-23ei: prevent overflow in ei_connect_init/ei_xconnectMichael Santos
Check the length of the buffer before copying. ei_cnode ec; struct in_addr addr; char *node = (char *)calloc(5001, 1); (void)memset(node, 'x', 5000); ei_connect_init(&ec, node, "", 0); addr.s_addr = inet_addr("192.168.1.1"); ei_xconnect(&ec, &addr, node);