[dovecot/core] 1c2f12: lib-http: response parser: Added check for the ran...

GitHub noreply at github.com
Thu May 26 09:30:12 UTC 2016


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 1c2f122ae93d3316f6746f255f6659b510527cc8
      https://github.com/dovecot/core/commit/1c2f122ae93d3316f6746f255f6659b510527cc8
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: response parser: Added check for the range of the response status value.

A value of 666 was accepted inappropriately.


  Commit: d5c665cf2989d49922b63439ac45714e9755838a
      https://github.com/dovecot/core/commit/d5c665cf2989d49922b63439ac45714e9755838a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: Changed http_client_request_error to set request to NULL

It's going to internally unreference it, so the caller should be aware of it
also.

I also changed request state check to be an assert, since I don't think
there's any safe way this could work otherwise.


  Commit: 43c49be6f1ca42b9284833b2297e72ea0393fc9c
      https://github.com/dovecot/core/commit/43c49be6f1ca42b9284833b2297e72ea0393fc9c
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Fixed reference counting for requests that are aborted due to having a broken outgoing payload stream.


  Commit: 6bdb1b488a5712ec7df0712949c31885e43d273c
      https://github.com/dovecot/core/commit/6bdb1b488a5712ec7df0712949c31885e43d273c
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Fixed reference counting for requests that are aborted due to an early server response.

An additional http_client_request_unref() is (now) unneccessary.


  Commit: 3e9055cee8e331a84522dd1e65d0d0e09a4e8803
      https://github.com/dovecot/core/commit/3e9055cee8e331a84522dd1e65d0d0e09a4e8803
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Improved request reference counting in connection code.

It should now always be clear when the connection object holds a reference to a request and when it is released.
Only while the reference is held, req->conn points to a connection.
This also makes the assertion in http_client_request_unref() more robust and clear.


  Commit: ebe0f5e387744621b73c4db79d5891ccbe0a1321
      https://github.com/dovecot/core/commit/ebe0f5e387744621b73c4db79d5891ccbe0a1321
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Made peer object reference-counted to prevent invalid memory access in request handling routine.

Resetting the peer->handling_requests flag risked triggering a segfault, since the peer object could be deleted from within the request handler loop.


  Commit: 481b066e8f955f5e4fe64b381d093790a06d38ea
      https://github.com/dovecot/core/commit/481b066e8f955f5e4fe64b381d093790a06d38ea
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Improved debug message that shows the loss of a connection.


  Commit: 1569b12af7b7394ff820382011f8e22970180e8b
      https://github.com/dovecot/core/commit/1569b12af7b7394ff820382011f8e22970180e8b
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Removed curiously duplicated code.

Probably a patch got applied with sufficient fuzz that it duplicated this code fragment, while it actually already existed.


  Commit: 8848174ce2d15daa9c4a20c93157e4401941f4f2
      https://github.com/dovecot/core/commit/8848174ce2d15daa9c4a20c93157e4401941f4f2
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib/net.c
    M src/lib/net.h

  Log Message:
  -----------
  lib: Implemented net_set_send_buffer_size() and net_set_recv_buffer_size().

These functions allow manipulating the kernel socket buffer sizes for a socket file descriptor.


  Commit: c972eaa3565e849df71b44cf0cd45d38c5567d07
      https://github.com/dovecot/core/commit/c972eaa3565e849df71b44cf0cd45d38c5567d07
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Added settings to configure the connection's socket kernel buffer sizes.

This is mainly useful for use in the lib-http test suite.


  Commit: 6ab81c81be13f33486746deeffe02a1ef2bcc821
      https://github.com/dovecot/core/commit/6ab81c81be13f33486746deeffe02a1ef2bcc821
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Prevent useless and unexpected request callbacks during http_client_deinit().

Requests are now destroyed before queues, hosts, peers and connections.
As a side-effect, requests are now removed from the client request list at http_client_request_destroy(), so that requests with lingering references will no longer make http_client_wait() hang.


  Commit: 7abab3b191860a3d77af5192b0649833c8a0c803
      https://github.com/dovecot/core/commit/7abab3b191860a3d77af5192b0649833c8a0c803
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Improved labeling of debug messages.

Request label is corrected.
Labels are now pre-composed and stored.


  Commit: 8a6dc50255a27bf887bbd9ed7c3a87bf629d4179
      https://github.com/dovecot/core/commit/8a6dc50255a27bf887bbd9ed7c3a87bf629d4179
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Reworked connection close handling.

Now, the peer is immediately notified of the lost connection.
Before, this step was only taken when the connection was fully dereferenced.
To prevent recursive notifications between peer and connection, handling the loss of a connection is deferred to the request handler.
When a peer is freed, any associated lingering connections have conn->peer set to NULL.


  Commit: 57c339f4e3404355a8924103317a6158a709ecf1
      https://github.com/dovecot/core/commit/57c339f4e3404355a8924103317a6158a709ecf1
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

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

  Log Message:
  -----------
  lib-http: client: Fixed bug in handling of lost connections while returning from another ioloop.

At one instance the http_client_connection_is_ready() function could have destroyed the connection while the caller still depended on it.
Renamed the http_client_connection_is_ready() function to http_client_connection_check_ready().
This now returns -1 when the connection got destroyed. Before it returned a bool that just indicated whether the connection was ready or not.
So, there is no need anymore to preserve a connection reference while calling this function.


  Commit: f3f5732b20a319961440029ae1a9003418e511b0
      https://github.com/dovecot/core/commit/f3f5732b20a319961440029ae1a9003418e511b0
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib-http/test-http-client.c

  Log Message:
  -----------
  lib-http: test-http-client: Callback is not called for explicitly aborted requests.

Test request context was not freed in that case.


  Commit: 844b0294f9bfc721e37782cada248394b531cea3
      https://github.com/dovecot/core/commit/844b0294f9bfc721e37782cada248394b531cea3
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Added -D option to easily enable debug mode.


  Commit: 7362ba25c47c19e2dd9e61f066b487fa1f204c8a
      https://github.com/dovecot/core/commit/7362ba25c47c19e2dd9e61f066b487fa1f204c8a
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Added cleanup code to make sure no child processes get orphaned at failures.

Also handles SIGSEGV and SIGABRT.


  Commit: b44c460e198dd3dd8be29304d4a3cb5e071894dc
      https://github.com/dovecot/core/commit/b44c460e198dd3dd8be29304d4a3cb5e071894dc
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Added tests for the use of nested ioloops.


  Commit: 03142e79fbd4dd407b54348fe7aa16c11f577663
      https://github.com/dovecot/core/commit/03142e79fbd4dd407b54348fe7aa16c11f577663
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/lib-http/Makefile.am
    A src/lib-http/test-http-client-errors.c

  Log Message:
  -----------
  lib-http: client: Created test program that triggers most possible error conditions.


Compare: https://github.com/dovecot/core/compare/ba4626cd5be3...03142e79fbd4


More information about the dovecot-cvs mailing list