[dovecot/core] da3004: lib-http: Forgot to assign pointer parameter to NU...

GitHub noreply at github.com
Wed Feb 10 11:56:07 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: da300472555d9afdb0bcb767456f731cf5c2f6aa
      https://github.com/dovecot/core/commit/da300472555d9afdb0bcb767456f731cf5c2f6aa
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-request-parser.c
    M src/lib-http/http-response-parser.c

  Log Message:
  -----------
  lib-http: Forgot to assign pointer parameter to NULL in request/response parser deinit functions.


  Commit: 79f8a20424633e806447bc9375a5ab403aabc758
      https://github.com/dovecot/core/commit/79f8a20424633e806447bc9375a5ab403aabc758
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-private.h
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  lib-http: client: Make sure that any pending request is aborted and destroyed before connection FDs are closed.

This way, any payload io struct created from the response callback can be freed before the associated FD becomes invalid.
This would cause an assert failure otherwise.


  Commit: e1d8d185fa74752ba6807e415a9c82ebfdb2082c
      https://github.com/dovecot/core/commit/e1d8d185fa74752ba6807e415a9c82ebfdb2082c
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-private.h
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  lib-http: client: Fixed pipelining bug: client sometimes sent new request while still waiting for 100-continue.


  Commit: ba9528fee8773980239901d99667c54a6d2c8132
      https://github.com/dovecot/core/commit/ba9528fee8773980239901d99667c54a6d2c8132
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-request-parser.c

  Log Message:
  -----------
  lib-http: request parser: Made sure that partially parsed requests never have stale string values.

Due to the fact that we assign method and target fields early for proper
error messages, stale fields from previous requests could have ended up in a
partially parsed new request.


  Commit: 01476c4d6b92572a02824719ea5e71d34b0f72ce
      https://github.com/dovecot/core/commit/01476c4d6b92572a02824719ea5e71d34b0f72ce
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-server-response.c

  Log Message:
  -----------
  lib-http: server: Fixed datastack framing problem in error handling of response sending.

The returned error string crossed a data stack frame, which wasn't handled correctly.


  Commit: b498cc3045c2b48a096bf5a8518526c9606e4e01
      https://github.com/dovecot/core/commit/b498cc3045c2b48a096bf5a8518526c9606e4e01
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-server-connection.c

  Log Message:
  -----------
  lib-http: server: Fixed memory problem reported by Valgrind, which was caused by the request being freed too early while sending a response.

Fixed by referencing the request while it is being sent.


  Commit: 14137be591f29a222e00602a1f9556b843ebd26e
      https://github.com/dovecot/core/commit/14137be591f29a222e00602a1f9556b843ebd26e
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-server-connection.c

  Log Message:
  -----------
  lib-http: server: Sometimes a success response was sent before all payload from the client request was read.

This can confuse clients, so this is supposed to be prevented.


  Commit: 489fb497f3fd57b61a472c6782913eae76586a7e
      https://github.com/dovecot/core/commit/489fb497f3fd57b61a472c6782913eae76586a7e
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-server-connection.c

  Log Message:
  -----------
  lib-http: server: Make sure that any pending request is aborted and destroyed before connection FDs are closed.

This way, any payload io struct created from the request callback can be
freed before the associated FD becomes invalid. This would cause an assert
failure otherwise.


  Commit: 9a07da094849cc665628c60db3024446fb71bae3
      https://github.com/dovecot/core/commit/9a07da094849cc665628c60db3024446fb71bae3
  Author: Stephan Bosch <stephan at rename-it.nl>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M src/lib-http/http-message-parser.c

  Log Message:
  -----------
  lib-http: message parser: Made sure that payload stream is always destroyed (hence closed) when the next request is to be parsed.

This makes sure that the connection input is always at the correct position
for the next request. Remaining references to the payload stream could
theoretically mess this up.


Compare: https://github.com/dovecot/core/compare/af3f70f21a11...9a07da094849


More information about the dovecot-cvs mailing list