Procházet zdrojové kódy

Merge branch 'maint-0.3.1'

Nick Mathewson před 6 roky
rodič
revize
4110745017
2 změnil soubory, kde provedl 10 přidání a 0 odebrání
  1. 3 0
      changes/bug23551
  2. 7 0
      src/common/compress.c

+ 3 - 0
changes/bug23551

@@ -0,0 +1,3 @@
+  o Minor bugfixes (compression):
+    - Handle a pathological case when decompressing Zstandard data when the
+      output buffer size is zero. Fixes bug 23551; bugfix on 0.3.1.1-alpha.

+ 7 - 0
src/common/compress.c

@@ -547,6 +547,13 @@ tor_compress_process(tor_compress_state_t *state,
   const size_t out_len_orig = *out_len;
   tor_compress_output_t rv;
 
+  if (*out_len == 0 && (*in_len > 0 || finish)) {
+    // If we still have input data, but no space for output data, we might as
+    // well return early and let the caller do the reallocation of the out
+    // variable.
+    return TOR_COMPRESS_BUFFER_FULL;
+  }
+
   switch (state->method) {
     case GZIP_METHOD:
     case ZLIB_METHOD: