aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2017-04-18 03:12:19 +0200
committerAlexander Færøy <ahf@torproject.org>2017-04-18 03:12:19 +0200
commite6c6606a17841eaf263967254990db5e9443942d (patch)
treeb007f39f778b7a28172a1267657be096e7b61e86
parent6b5172bcf2018f858d38f5dea13753b8238b15ae (diff)
downloadtor-e6c6606a17841eaf263967254990db5e9443942d.tar.gz
tor-e6c6606a17841eaf263967254990db5e9443942d.zip
Expose `tor_compress_is_compression_bomb()` as part of the public compression API.
This patch exposes the old `is_compression_bomb()` function as a public API as part of the compression module. See https://bugs.torproject.org/21663
-rw-r--r--src/common/torgzip.c8
-rw-r--r--src/common/torgzip.h3
2 files changed, 7 insertions, 4 deletions
diff --git a/src/common/torgzip.c b/src/common/torgzip.c
index 09f3806895..d6f6225251 100644
--- a/src/common/torgzip.c
+++ b/src/common/torgzip.c
@@ -105,10 +105,10 @@ method_bits(compress_method_t method, compression_level_t level)
#define CHECK_FOR_COMPRESSION_BOMB_AFTER (1024*64)
/** @} */
-/** Return true if uncompressing an input of size <b>in_size</b> to an input
- * of size at least <b>size_out</b> looks like a compression bomb. */
-static int
-is_compression_bomb(size_t size_in, size_t size_out)
+/** Return true if uncompressing an input of size <b>in_size</b> to an input of
+ * size at least <b>size_out</b> looks like a compression bomb. */
+int
+tor_compress_is_compression_bomb(size_t size_in, size_t size_out)
{
if (size_in == 0 || size_out < CHECK_FOR_COMPRESSION_BOMB_AFTER)
return 0;
diff --git a/src/common/torgzip.h b/src/common/torgzip.h
index 8f2363aa1e..fa566282d7 100644
--- a/src/common/torgzip.h
+++ b/src/common/torgzip.h
@@ -49,6 +49,9 @@ compress_method_t detect_compression_method(const char *in, size_t in_len);
int
tor_compress_memory_level(compression_level_t level);
+int
+tor_compress_is_compression_bomb(size_t size_in, size_t size_out);
+
/** Return values from tor_compress_process; see that function's documentation
* for details. */
typedef enum {