diff options
author | Сергей Прохоров <[email protected]> | 2015-01-19 05:06:53 +0300 |
---|---|---|
committer | Сергей Прохоров <[email protected]> | 2015-02-12 21:44:11 +0300 |
commit | b24651c3bb6fef59c0e92c24e69151d1a92c4b08 (patch) | |
tree | b69a6e2e6a5ffbf3c1d73d4d0170df40c1982273 /erts/preloaded/ebin | |
parent | 50a92094372b45c9864afe3418b79605da549122 (diff) | |
download | otp-b24651c3bb6fef59c0e92c24e69151d1a92c4b08.tar.gz otp-b24651c3bb6fef59c0e92c24e69151d1a92c4b08.tar.bz2 otp-b24651c3bb6fef59c0e92c24e69151d1a92c4b08.zip |
Add zlib limited output buffer size functionality
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).
```
Diffstat (limited to 'erts/preloaded/ebin')
-rw-r--r-- | erts/preloaded/ebin/zlib.beam | bin | 13188 -> 14156 bytes |
1 files changed, 0 insertions, 0 deletions
diff --git a/erts/preloaded/ebin/zlib.beam b/erts/preloaded/ebin/zlib.beam Binary files differindex 7006764d96..ed6ab5b254 100644 --- a/erts/preloaded/ebin/zlib.beam +++ b/erts/preloaded/ebin/zlib.beam |