Age | Commit message (Collapse) | Author |
|
This functionality may be useful for compressed streams with high
compression ratio (in case of gzip it may be up to x1000), when
small amount of compressed data will produce large amount of
uncompressed output. This may lead to DoS attacks, because
server easily goes out of memory.
Example of such high compression ratio stream:
```
dd if=/dev/zero of=sparse.bin bs=1MB count=100 # 100mb of zeroes
gzip sparse.bin # 95kb sparse.bin.gz
$ erl
> {ok, Compressed} = file:read_file("sparse.bin.gz"),
> 97082 = size(Compressed),
> Uncompressed = zlib:gunzip(Compressed),
> 100000000 = iolist_size(Uncompressed).
```
|
|
OTP-12405
* mikpe/hipe-arm-interworking:
hipe: fix ARM/Thumb interworking
|
|
* dotsimon/sctp_paddrinfo_state:
Fix inet:getopts involving #sctp_paddrinfo{}
|
|
HiPE on ARM is currently severely broken if the rest of the VM is
compiled to run in Thumb mode -- calling native code quickly ends
up executing code in the wrong mode and crashing the VM. This is
a problem on e.g. Ubuntu which configures its system GCC to generate
Thumb by default. It can also be triggered by overriding CC or
CFLAGS when compiling the VM.
There were three issues that caused the breakage:
1. Assembly-coded functions in hipe_arm_glue.S weren't explicitly
tagged as functions, preventing the linker from generating the
correct mode-switching call instructions for calls from C to
these functions.
Fixed by tagging those symbols as functions.
2. A few BIF wrappers were so simple that they performed tailcalls
to the C BIFs. This fails to switch mode when C is in Thumb.
Fixed by performing ordinary recursive calls when C is in Thumb.
3. The assembly-coded source files weren't explicitly tagged as ARM.
Tested with the HiPE testsuite on ARMv7, with the VM built as ARM
and as Thumb. Also manually inspected the object code for the beam
executable and checked that call sites from C to HiPE's ARM runtime
code and vice versa used the correct mode-switching instructions.
|
|
* mikpe/fix-eacces-spelling:
fix eacces spelling
|
|
* haguenau/fix-endianness-speling:
Replaced "Endianess" with "Endianness" everywhere
|
|
|
|
The 64-bit atomic ops API is implemented by
* native word size atomic ops on 64-bit architectures, and
* native double word size atomic ops on 32-bit architectures
when available. When native double word size atomic is not
available, the fallback using modification counters is
used.
|
|
|
|
|
|
Handle peer addresses that are unconfirmed (i.e. in state SCTP_UNCONFIRMED).
Handle unknown states instead of using ASSERT
|
|
|
|
|
|
|
|
|
|
|
|
* lukas/erts/isfinite-fix/OTP-12268:
erts: Fix finite warning for clang
|
|
clang aka llvm claims to be __GNUC__ and thus we have to
explicitly check that it is not used.
|
|
* lukas/erts/bif_info_rebuild/OTP-12344:
Sort keys before generating
|
|
* vinoski/rm-foo-dtrace:
Clean up temporary dtrace file during config
|
|
* sverk/port_get_data-race/OTP-12208:
erts: Fix port data memory allocation bug
|
|
When configuring erts to support dynamic trace via dtrace, be sure to clean
up the temporary file "erts/foo-dtrace.h" used to help check for dtrace
support. Otherwise, it shows up as an untracked file in git.
|
|
This has to be done in order to consistently generate the same
file so that we do not get rebuilds all the time.
|
|
* rickard/maint-17/activate-runq/OTP-12287:
Do not let non-empty run-queue prevent activation of scheduler
|
|
* rickard/ppc32-atomic-opt/OTP-12250:
Optimize atomic ops with release barrier for 32-bit PowerPC
|
|
* rickard/libatomic_ops_improvements/OTP-12302:
Implement support for double word atomics using libatomic_ops
Improve usage of libatomic_ops for word size atomics
|
|
OTP-12323
* sverk/cpool-search-improvement:
erts: Add internal docs for super carrier and new cpool search.
erts: Fix bug causing mbc to be deleted from cpool before it was inserted
erts: Fix bug causing mbc removed from cpool to be used at pool entrance
erts: Add pooled_list and traitor_list
|
|
for non-immediate port data >= sizeof(Eterm)*2 words.
|
|
* sverk/with-ssl-rpath/OTP-12316:
erts,crypto: Add configure option --with-ssl-rpath
|
|
* lem/epmd_sd_notify/OTP-12321:
epmd: Unify systemd autoconf macros usage
epmd: Added systemd notify support to EPMD
|
|
Don't use both HAVE_SYSTEMD_DAEMON and HAVE_SYSTEMD_SD_DAEMON - use only
the former one and remove the latter one entirely.
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
* lukas/erts/isfinite-fix/OTP-12268:
erts: Use finite instead of isfinite with gcc
|
|
Turns out that isfinite emits a function call and not
an instruction in gcc, this makes estone float arith
about 50-75% slower. finite emits the instruction so
we use that instead.
|
|
|
|
* siri/no-unicode-atoms/OTP-12172:
Remove comments about unicode atoms in OTP 18
|
|
* s1n4/zlib_doc_typo:
Fix a typo in the zlib documentation
|
|
There was once a plan to implement support for unicode atoms in OTP
18. This plan has been stopped until further notice, and the
information about this is now removed from the documentation.
|
|
|
|
Use AO_fetch_compare_and_swap*() when present
|
|
|
|
OTP-12300
* vinoski/dirty-nif-return-gc:
Fix gc-related problem with dirty NIFs
|
|
OTP-12298
* lemenkov/expose_nif_version:
Expose NIF version
|
|
|
|
* vinoski/fix-smp-disable-with-ds/OTP-12295:
Fix "-smp disable" for emulator with dirty schedulers
|
|
Conflicts:
OTP_VERSION
|
|
* lukas/erts/fix_undefined_behaviour/OTP-12290:
erts: Fix ub in list_to_integer and bignum div
|
|
* lukas/erts/fdopen_non_bound_win32_fix/OTP-12289:
erts: getsockname is not allowed on non-bound sockets
|
|
rickard/maint-17/activate-runq/OTP-12287
* rickard/activate-runq/OTP-12287:
Do not let non-empty run-queue prevent activation of scheduler
Conflicts:
erts/emulator/beam/erl_process.c
|
|
Conflicts:
erts/emulator/beam/erl_process.c
|