GithubHelp home page GithubHelp logo

Comments (7)

jameshartig avatar jameshartig commented on September 25, 2024 2

@azr Looks like d3d7d67 fixed your POC. Now when Close() is called, gw == nil which causes it to immediately return.

If you write anything inside of CatchPanic it won't be gzip'd but that's expected since its wrapping withGz. So this can be closed.

from gziphandler.

adammck avatar adammck commented on September 25, 2024 1

Ouch! That's a nasty bug. Thank you very much for reporting it, and especially for including a POC. The solution isn't immediately obvious to me, but so long as we call Reset before attempting to re-use the gzip writers (which we do), I see no harm in simply not calling Close when a panic occurs. Perhaps we should (partially) revert #8?

from gziphandler.

azr avatar azr commented on September 25, 2024

Sorry I was totally wrong for you :)

from gziphandler.

azr avatar azr commented on September 25, 2024

Whoops I actually found a way to reproduce: https://play.golang.org/p/zDqhbl4Nnn

log outputs : 2016/08/22 17:24:16 http: multiple response.WriteHeader calls

$ curl -H "Accept-Encoding: gzip" -i localhost:8000
HTTP/1.1 200 OK
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Mon, 22 Aug 2016 15:24:18 GMT
Content-Length: 23
Content-Type: application/x-gzip

�       n����%

from gziphandler.

elithrar avatar elithrar commented on September 25, 2024

You could also just call Reset explicitly instead of Close (as a
precaution).

On Mon, Aug 22, 2016 at 8:46 AM Adam Mckaig [email protected]
wrote:

Ouch! That's a nasty bug. Thank you very much for reporting it, and
especially for including a POC. The solution isn't immediately obvious to
me, but so long as we call Reset before attempting to re-use the gzip
writers (which we do), I see no harm in simply not calling Close when a
panic occurs. Perhaps we should (partially) revert #8
#8?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#15 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABIcLfhMi0aryIkpJ0M0fZPHXhWvisGks5qicRQgaJpZM4Jp5xq
.

from gziphandler.

adammck avatar adammck commented on September 25, 2024

We already call Reset immediately after grabbing a gzw from the pool, so I think omitting the Close should be okay.

from gziphandler.

azr avatar azr commented on September 25, 2024

Hey, you're welcome :)

from gziphandler.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.