1. 14 Jan, 2018 2 commits
    • Patrick Monnerat's avatar
      mime: clone mime tree upon easy handle duplication. · e44ddfd4
      Patrick Monnerat authored
      A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
      strongly bound to the handle: there is a pointer to the easy handle in
      each item of the mime tree and following the parent pointer list
      of mime items ends in a dummy part stored within the handle.
      
      Because of this binding, a mime tree cannot be shared between different
      easy handles, thus it needs to be cloned upon easy handle duplication.
      
      There is no way for the caller to get the duplicated mime tree
      handle: it is then set to be automatically destroyed upon freeing the
      new easy handle.
      
      New test 654 checks proper mime structure duplication/release.
      
      Add a warning note in curl_mime_data_cb() documentation about sharing
      user data between duplicated handles.
      
      Closes #2235
      e44ddfd4
    • Patrick Monnerat's avatar
  2. 13 Jan, 2018 8 commits
  3. 11 Jan, 2018 1 commit
    • Zhouyihai Ding's avatar
      http2: fix incorrect trailer buffer size · fa3dbb9a
      Zhouyihai Ding authored
      Prior to this change the stored byte count of each trailer was
      miscalculated and 1 less than required. It appears any trailer
      after the first that was passed to Curl_client_write would be truncated
      or corrupted as well as the size. Potentially the size of some
      subsequent trailer could be erroneously extracted from the contents of
      that trailer, and since that size is used by client write an
      out-of-bounds read could occur and cause a crash or be otherwise
      processed by client write.
      
      The bug appears to have been born in 0761a51e (precedes 7.49.0).
      
      Closes https://github.com/curl/curl/pull/2231
      fa3dbb9a
  4. 09 Jan, 2018 3 commits
  5. 08 Jan, 2018 1 commit
  6. 07 Jan, 2018 2 commits
  7. 06 Jan, 2018 1 commit
  8. 03 Jan, 2018 1 commit
  9. 02 Jan, 2018 1 commit
  10. 30 Dec, 2017 2 commits
  11. 29 Dec, 2017 1 commit
  12. 27 Dec, 2017 1 commit
    • Mikalai Ananenka's avatar
      brotli: data at the end of content can be lost · 58d7cd28
      Mikalai Ananenka authored
      Decoding loop implementation did not concern the case when all
      received data is consumed by Brotli decoder and the size of decoded
      data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
      For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
      can result in the loss of data at the end of content.
      
      Closes #2194
      58d7cd28
  13. 26 Dec, 2017 2 commits
  14. 22 Dec, 2017 8 commits
  15. 20 Dec, 2017 3 commits
    • Patrick Monnerat's avatar
      curl_easy_reset: release mime-related data. · f009bbe1
      Patrick Monnerat authored
      Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
      functions dealing with UserDefined structure contents.
      This avoids memory leakages on curl-generated part mime headers.
      New test 2073 checks this using the cli tool --next option: it
      triggers a valgrind error if bug is present.
      
      Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
      Reported-by: Martin Galvan
      f009bbe1
    • Patrick Monnerat's avatar
      content_encoding: rework zlib_inflate · 4acc9d3d
      Patrick Monnerat authored
      - When zlib version is < 1.2.0.4, process gzip trailer before considering
      extra data as an error.
      - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
      and minimize corrupt data output.
      - Do not try to restart deflate decompression in raw mode if output has
      started or if the leading data is not available anymore.
      - New test 232 checks inflating raw-deflated content.
      
      Closes #2068
      4acc9d3d
    • Patrick Monnerat's avatar
      brotli: allow compiling with version 0.6.0. · e639d4ca
      Patrick Monnerat authored
      Some error codes were not yet defined in brotli 0.6.0: do not issue code
      for them in this case.
      e639d4ca
  16. 13 Dec, 2017 1 commit
  17. 12 Dec, 2017 2 commits