Skip to content

Tags

Tags

v0.1.15

Toggle v0.1.15's commit message
tests: reindex tests.

v0.1.14

Toggle v0.1.14's commit message
bugfix: avoid use-after-free of column in debug logging.

dd_drizzle_column(col) ran after drizzle_column_free(col). Only manifests in DDEBUG builds but is a freed-pointer dereference; log before freeing.

v0.1.13

Toggle v0.1.13's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
bugfix: stash peer data in module ctx to survive upstream wrappers. (#52

)

Since nginx 1.29.7 (commit 4fbe4b62, "Upstream: enabled keepalive
by default for explicit upstreams.") the standard upstream keepalive
module implicitly wraps every explicit upstream in "local" keepalive
mode. Its init_peer overwrites r->upstream->peer.data with its own
~64-byte ngx_http_upstream_keepalive_peer_data_t after our init_peer
returns.

Our event handlers (ngx_http_drizzle_set_libdrizzle_ready,
ngx_http_drizzle_process_events, set_thread_id_variable, and the
output_* helpers) re-read r->upstream->peer.data and cast it back to
ngx_http_upstream_drizzle_peer_data_t (~9256 bytes). With the keepalive
wrapper in place, dp->drizzle_con reads past the end of the wrapper
struct and returns garbage; dereferencing it segfaults the worker, e.g.

    ngx_http_drizzle_set_libdrizzle_ready (...drizzle_handler.c:389)
        dc->options |= DRIZZLE_CON_IO_READY;   // dc == 0x21

Save the original drizzle peer-data pointer in the module ctx in
init_peer, and add a small helper ngx_http_drizzle_get_peer_data() that
returns the ctx-saved pointer (falling back to peer.data when no ctx is
set). All consumers that previously read u->peer.data now go through
the helper. The ngx_http_drizzle_ctx_t struct is now defined for all
nginx versions (it was previously only built for nginx_version < 8017).

While here, replace the ngx_http_upstream_drizzle_is_my_peer() probe in
process_events with a NULL check on dp; the old probe compared
peer->get against ngx_http_upstream_drizzle_get_peer and would always
report a non-drizzle backend once the keepalive wrapper installs its
own get function.

v0.1.12

Toggle v0.1.12's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
api: bumped version to 0.1.12. (#45)

v0.1.11

Toggle v0.1.11's commit message
doc: updated docs to reflect recent changes.

v0.1.10

Toggle v0.1.10's commit message
feature: fixed compilation issues with new nginx cores >= 1.11.6.

the default_port declaration was removed in this commit:
http://hg.nginx.org/nginx/rev/4dea01cf49e8

Signed-off-by: Yichun Zhang (agentzh) <agentzh@gmail.com>

v0.1.9

Toggle v0.1.9's commit message
bumped version to 0.1.9.

v0.1.8

Toggle v0.1.8's commit message
bumped version to 0.1.8.

v0.1.7

Toggle v0.1.7's commit message
bumped version to 0.1.7 and also claims that we work with 1.4.4.

v0.1.6

Toggle v0.1.6's commit message
documented that the last tested nginx release in the 1.2.x series is …

…1.2.9.