forked from pool/brotli
Accepting request 665644 from home:iznogood:branches:Archiving
- Add brotli_Verbose-CLI+Shared-Brotli.patch: Verbose CLI + start pulling "Shared-Brotli". * verbose CLI output; fix gh#google/brotlie#666. * pull `SHIFT` transforms; currently this is semantically dead code; later it will be used by "Shared-Brotli". - Add brotli_Ensure-decompression-consumes-all-input.patch: Ensure decompression consumes all input. If not, it's a corrupt stream. - Tweak spec slightly. OBS-URL: https://build.opensuse.org/request/show/665644 OBS-URL: https://build.opensuse.org/package/show/Archiving/brotli?expand=0&rev=17
This commit is contained in:
parent
f6acf6de25
commit
bfaa3a8d77
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 13 11:24:26 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Add brotli_Verbose-CLI+Shared-Brotli.patch: Verbose CLI + start
|
||||
pulling "Shared-Brotli".
|
||||
* verbose CLI output; fix gh#google/brotlie#666.
|
||||
* pull `SHIFT` transforms; currently this is semantically dead
|
||||
code; later it will be used by "Shared-Brotli".
|
||||
- Add brotli_Ensure-decompression-consumes-all-input.patch: Ensure
|
||||
decompression consumes all input. If not, it's a corrupt stream.
|
||||
- Tweak spec slightly.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 14 11:01:35 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
|
31
brotli.spec
31
brotli.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package brotli
|
||||
#
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2017 Buschmann <buschmann23@opensuse.org>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
@ -25,16 +25,18 @@ Summary: Lossless Compression Algorithm
|
||||
License: MIT
|
||||
Group: Productivity/Archiving/Compression
|
||||
URL: https://github.com/google/brotli
|
||||
Source: https://github.com/google/brotli/archive/v%version.tar.gz#/%name-%version.tar.gz
|
||||
Source: %url/archive/v%version.tar.gz#/%name-%version.tar.gz
|
||||
Source99: baselibs.conf
|
||||
Patch: brotli_Verbose-CLI+Shared-Brotli.patch
|
||||
Patch1: brotli_Ensure-decompression-consumes-all-input.patch
|
||||
BuildRequires: cmake >= 2.8.6
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gzip
|
||||
BuildRequires: pkg-config
|
||||
|
||||
%description
|
||||
This package contains the brotli command line utility to compress and
|
||||
decompress data with the brotli compression algorithm.
|
||||
This package contains the brotli command line utility to compress
|
||||
and decompress data with the brotli compression algorithm.
|
||||
|
||||
Brotli is a generic-purpose lossless compression algorithm that
|
||||
compresses data using a combination of a modern variant of the LZ77
|
||||
@ -43,8 +45,8 @@ compression ratio comparable to the best currently available
|
||||
general-purpose compression methods. It is similar in speed with
|
||||
deflate but offers more dense compression.
|
||||
|
||||
The specification of the Brotli Compressed Data Format is defined in
|
||||
RFC 7932.
|
||||
The specification of the Brotli Compressed Data Format is defined
|
||||
in RFC 7932.
|
||||
|
||||
%package -n libbrotlicommon%sover
|
||||
Summary: Common Library for Brotli Compression
|
||||
@ -62,17 +64,19 @@ Group: System/Libraries
|
||||
Decompression library for the Brotli general purpose lossless data
|
||||
compression algorithm.
|
||||
|
||||
The specification of the Brotli Compressed Data Format is defined in
|
||||
RFC 7932.
|
||||
The specification of the Brotli Compressed Data Format is defined
|
||||
in RFC 7932.
|
||||
|
||||
%package -n libbrotlienc%sover
|
||||
Summary: Library for Brotli Compression
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libbrotlienc%sover
|
||||
Compression library for the Brotli general purpose lossless data compression algorithm.
|
||||
Compression library for the Brotli general purpose lossless data
|
||||
compression algorithm.
|
||||
|
||||
The specification of the Brotli Compressed Data Format is defined in RFC 7932.
|
||||
The specification of the Brotli Compressed Data Format is defined
|
||||
in RFC 7932.
|
||||
|
||||
%package -n libbrotli-devel
|
||||
Summary: Development and Header Files for Brotli Compression
|
||||
@ -88,10 +92,11 @@ Obsoletes: libbrotlidec-devel < %version-%release
|
||||
Obsoletes: libbrotlienc-devel < %version-%release
|
||||
|
||||
%description -n libbrotli-devel
|
||||
Development and headers files for (de)compressing data using the Brotli general
|
||||
purpose lossless compression algorithm.
|
||||
Development and headers files for (de)compressing data using the
|
||||
Brotli general purpose lossless compression algorithm.
|
||||
|
||||
The specification of the Brotli Compressed Data Format is defined in RFC 7932.
|
||||
The specification of the Brotli Compressed Data Format is defined
|
||||
in RFC 7932.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
74
brotli_Ensure-decompression-consumes-all-input.patch
Normal file
74
brotli_Ensure-decompression-consumes-all-input.patch
Normal file
@ -0,0 +1,74 @@
|
||||
From 5805f99a533a8f8118699c0100d8c102f3605f65 Mon Sep 17 00:00:00 2001
|
||||
From: Justin Ridgewell <justin@ridgewell.name>
|
||||
Date: Mon, 12 Nov 2018 04:36:00 -0500
|
||||
Subject: [PATCH] Ensure decompression consumes all input (#730)
|
||||
|
||||
* Ensure decompression consumes all input
|
||||
|
||||
If not, it's a corrupt stream.
|
||||
|
||||
* Use byte strings
|
||||
---
|
||||
python/_brotli.cc | 4 ++--
|
||||
python/tests/decompress_test.py | 4 ++++
|
||||
python/tests/decompressor_test.py | 9 +++++++++
|
||||
3 files changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/python/_brotli.cc b/python/_brotli.cc
|
||||
index a6f925ef..5e1828e9 100644
|
||||
--- a/python/_brotli.cc
|
||||
+++ b/python/_brotli.cc
|
||||
@@ -414,7 +414,7 @@ static BROTLI_BOOL decompress_stream(BrotliDecoderState* dec,
|
||||
(*output).insert((*output).end(), buffer, buffer + buffer_length);
|
||||
}
|
||||
}
|
||||
- ok = result != BROTLI_DECODER_RESULT_ERROR;
|
||||
+ ok = result != BROTLI_DECODER_RESULT_ERROR && !available_in;
|
||||
|
||||
Py_END_ALLOW_THREADS
|
||||
return ok;
|
||||
@@ -672,7 +672,7 @@ static PyObject* brotli_decompress(PyObject *self, PyObject *args, PyObject *key
|
||||
if (available_out != 0)
|
||||
output.insert(output.end(), next_out, next_out + available_out);
|
||||
}
|
||||
- ok = result == BROTLI_DECODER_RESULT_SUCCESS;
|
||||
+ ok = result == BROTLI_DECODER_RESULT_SUCCESS && !available_in;
|
||||
BrotliDecoderDestroyInstance(state);
|
||||
|
||||
Py_END_ALLOW_THREADS
|
||||
diff --git a/python/tests/decompress_test.py b/python/tests/decompress_test.py
|
||||
index 7a9e9e30..814e5633 100644
|
||||
--- a/python/tests/decompress_test.py
|
||||
+++ b/python/tests/decompress_test.py
|
||||
@@ -31,6 +31,10 @@ def _test_decompress(self, test_data):
|
||||
self._decompress(test_data)
|
||||
self._check_decompression(test_data)
|
||||
|
||||
+ def test_garbage_appended(self):
|
||||
+ with self.assertRaises(brotli.error):
|
||||
+ brotli.decompress(brotli.compress(b'a') + b'a')
|
||||
+
|
||||
|
||||
_test_utils.generate_test_methods(TestDecompress, for_decompression=True)
|
||||
|
||||
diff --git a/python/tests/decompressor_test.py b/python/tests/decompressor_test.py
|
||||
index 99667bcd..05918ada 100644
|
||||
--- a/python/tests/decompressor_test.py
|
||||
+++ b/python/tests/decompressor_test.py
|
||||
@@ -43,6 +43,15 @@ def _test_decompress(self, test_data):
|
||||
self._decompress(test_data)
|
||||
self._check_decompression(test_data)
|
||||
|
||||
+ def test_garbage_appended(self):
|
||||
+ with self.assertRaises(brotli.error):
|
||||
+ self.decompressor.process(brotli.compress(b'a') + b'a')
|
||||
+
|
||||
+ def test_already_finished(self):
|
||||
+ self.decompressor.process(brotli.compress(b'a'))
|
||||
+ with self.assertRaises(brotli.error):
|
||||
+ self.decompressor.process(b'a')
|
||||
+
|
||||
|
||||
_test_utils.generate_test_methods(TestDecompressor, for_decompression=True)
|
||||
|
||||
|
1375
brotli_Verbose-CLI+Shared-Brotli.patch
Normal file
1375
brotli_Verbose-CLI+Shared-Brotli.patch
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user