Age | Commit message (Collapse) | Author |
|
|
|
* sverk/packet_size-http/OTP-9389:
erts: Remove truncation of http packet parsing and return error instead
honor packet_size for http packet parsing to fix OTP-9389
|
|
* hb/kernel/remove_debug/OTP-9789:
Remove debug printout
|
|
* ia/ssl/public_key/test-maint:
Add default value for "user" if os:getenv("USER") returns false
|
|
* ia/ssl/session/cleanup-test:
Improve ssl session cleanup test
|
|
|
|
* siri/reltool/doc-rootdir-recommendataion/OTP-9742:
Add recommendation about RootDir parameter to reltool:eval_target_spec/3
|
|
* siri/sasl/convert-to-common-test/OTP-9740:
Convert sasl test suites to pure common test style
|
|
* dgud/mnesia/impl-table-options/OTP-8970:
[mnesia] Add possibility for implementation dependent storage options to create_table
|
|
* dgud/wx/deadlock-syncevent/OTP-9725:
[wx] Avoid deadlock in handle_sync_event
|
|
|
|
* bjorn/erts/code-loading/OTP-9720:
BEAM loader: Fix bug that allowed loading of more than two versions
Add code_SUITE:versions/1
|
|
In commit b67d3e5447f4b2bca3ed92f3db84adb3f79f9b16 (which cleaned up
handling of error reasons), the test of the return value from
beam_make_current_old() in insert_new_code() was not updated, which
meant that it never was true and any number of versions of code could
be loaded for a module.
|
|
We did not have test case that ensures that the loader refuses to
load a module if there already exists old code for the module.
|
|
|
|
* bjorn/compiler/inline-binary-matching/OTP-9770:
beam_validator: Fix type for failure label for bs_start_match2/5
inline_SUITE: Add the comma_splitter/1 test case
Teach the compiler the 'no_dead' option
|
|
* rickard/test-fixes-r15b:
Unlink test-proc instead of ensuring that it has died before stopping node
|
|
Unlink the test-proc instead of monitoring it and waiting for it to
terminate before stopping the node. This since an unlink is faster,
simpler and in this case more stable.
|
|
* rickard/test-fixes-r15b:
Ensure test-proc is dead before stopping node
|
|
|
|
* rickard/test-fixes-r15b:
Skip detached test-case on MacOSX Leopard
|
|
* ta/docs:
Fix misspelling of chosen
Fix typos in erl(1)
Fix misspelling of 'turn off'
Fix typo in reltool(3)
Fix typo in gen_sctp(3)
Fix typo in mod_responsecontrol.erl
Fix typo in erts_alloc(3)
Fix typos in ssl_cipher.erl
Fix typos in expressions.xml
file: correct make_link/2 and make_symlink/2 docs
Fix typo in test_server(3)
Fix typos in io_protocol.xml
Fix typo in erlang(3)
Fix typos in tar_SUITE
Fix typos in erts/preloaded/src
OTP-9787
|
|
|
|
* ao/fix-change-time-inval-dates:
Fix a crash when file:change_time/2,3 are called with invalid dates
OTP-9785
|
|
* rickard/test-fixes-r15b:
Give slow machines more time to compute result
Allow more CPU time in waiting test-cases
Skip thread_mseg_alloc_cache_clean() when no mseg_alloc
|
|
|
|
|
|
A bs_start_match2/5 instruction will never fail (take the branch) if
given a match state or a binary. Therefore, the type at the failure
label should be 'term', not match state or binary. Without this
correction, the beam_validator will reject safe programs.
|
|
Compilation would fail with an error message similar to:
comma_splitter: function split_at_comma/2+32:
Internal consistency check failed - please report this bug.
Instruction: {put,{x,0}}
Error: {match_context,{x,0}}:
Noticed-by: René Kijewski
|
|
To facilitate debugging of compiler bugs, teach the compiler the
'no_dead' option. Since the beam_dead pass used to do the necessary
splitting of basic blocks to expose all labels, we must move that
splitting into a separate pass that is always run.
|
|
* sverk/big-float-cmp-bug:
erts: Fix bug in large big/float compare
|
|
* sverk/ppc-hibernate-fix:
erts: Fix hipe bug in hibernate on PowerPC
|
|
Check last delay timer for both client and server side to avoide
timing issues.
|
|
This is a slight modification of previous commit by Steve Vinoski
For backward compatibility of old users of decode_packet, I think it's enough
to return error instead of keeping the old line truncation behaviour.
|
|
* ia/public_key/asn1:
Asn1 simplification
|
|
Avoid sending cb messages to the wx_object, since it may deadlock.
Instead send it to the wxe_server which reads the state from the wx_object's
process_dictionary.
Ugly but it's the only way I can avoid the deadlock.
|
|
|
|
* anders/diameter/transport_restart/OTP-9756:
Fix transport restart bug
|
|
|
|
Allow applications to use a packet_size setting on a socket to control
acceptable HTTP header line length. This gives them the ability to
accept HTTP headers larger than the default settings allow, but also
lets them avoid DOS attacks by accepting header lines only up to
whatever length they wish to allow.
Without this change, if an HTTP request/response line or header
arrives on a socket in http, http_bin, httph, or httph_bin parsing
mode, and the request/response line or header is too long to fit into
a default inet_drv buffer of 1460 bytes, an unexpected error
occurs. These problems were described and discussed on
erlang-questions in June 2011 in this thread:
http://erlang.org/pipermail/erlang-questions/2011-June/059563.html
In the original code, no buffer reallocation occurs to enlarge the
buffer, even if packet_size or line_length are set in a way that
should allow the HTTP data to be parsed properly. The only available
workaround was to collect headers and parse them using
erlang:decode_packet, but that approach has drawbacks such as having
to collect all HTTP header data before it can be handed to
decode_packet for correct parsing, and also requiring each and every
Erlang web server developer/maintainer to add the workaround to his or
her web server.
Change the packet parser to honor the packet_size setting for HTTP
parsing. If packet_size is set, and an HTTP request/response or header
line exceeds the default 1460 byte TCP buffer limit, return an
indication to tcp_remain that it should realloc the buffer to enlarge
it to packet_size. Also fix the HTTP parsing code to properly honor
line_length by truncating any HTTP request/response or header lines
that exceed that setting.
For backward compatibility, default behavior is unchanged; if an
application wants to be able to accept long HTTP header lines, it must
set packet_size to an appropriate value. Buffer reallocation occurs
only when needed, so the original default buffer size in the code is
still the default.
Make the line mode parsing honor packet_size as well, for consistency.
Add new regression tests to the emulator decode_packet suite and also
to the kernel gen_tcp_misc suite.
The documentation for packet_size in inet:setopts/2 is already
sufficient.
Many thanks to Sverker Eriksson for his guidance on how to best fix
this bug and also for reviewing a number of patch attempts prior to
this one.
|
|
* rickard/generic-thr-queue/OTP-9632:
Fix handle_async_ready_clean()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|