From c057b82a5deba8b57c47503f751d2f067e2800a3 Mon Sep 17 00:00:00 2001 From: Christophe Jaillet Date: Sat, 27 May 2017 10:52:22 +0000 Subject: [PATCH] Move a potential NULL pointer dereference. Check if 'slave' is NULL before using 'slave->keepalives'. Remove a redundant assignment which is already done in 'h2_slave_destroy'. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1796378 13f79535-47bb-0310-9956-ffa450edef68 --- modules/http2/h2_mplx.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/http2/h2_mplx.c b/modules/http2/h2_mplx.c index 0520dc5914..ebe0156153 100644 --- a/modules/http2/h2_mplx.c +++ b/modules/http2/h2_mplx.c @@ -292,12 +292,12 @@ static void task_destroy(h2_mplx *m, h2_task *task) slave = task->c; - if (m->s->keep_alive_max == 0 || slave->keepalives < m->s->keep_alive_max) { - reuse_slave = ((m->spare_slaves->nelts < (m->limit_active * 3 / 2)) - && !task->rst_error); - } - if (slave) { + if (m->s->keep_alive_max == 0 || slave->keepalives < m->s->keep_alive_max) { + reuse_slave = ((m->spare_slaves->nelts < (m->limit_active * 3 / 2)) + && !task->rst_error); + } + if (reuse_slave && slave->keepalive == AP_CONN_KEEPALIVE) { h2_beam_log(task->output.beam, m->c, APLOG_DEBUG, APLOGNO(03385) "h2_task_destroy, reuse slave"); @@ -307,7 +307,6 @@ static void task_destroy(h2_mplx *m, h2_task *task) else { h2_beam_log(task->output.beam, m->c, APLOG_TRACE1, "h2_task_destroy, destroy slave"); - slave->sbh = NULL; h2_slave_destroy(slave); } } -- 2.50.1