From b1ec21d259c72559e2d170a09efc059d9fc58347 Mon Sep 17 00:00:00 2001 From: Tim Duesterhus Date: Sat, 22 Apr 2023 17:47:32 +0200 Subject: [PATCH] CLEANUP: Stop checking the pointer before calling `tasklet_free()` Changes performed with this Coccinelle patch: @@ expression e; @@ - if (e != NULL) { tasklet_free(e); - } @@ expression e; @@ - if (e) { tasklet_free(e); - } @@ expression e; @@ - if (e) tasklet_free(e); @@ expression e; @@ - if (e != NULL) tasklet_free(e); See GitHub Issue #2126 --- src/event_hdl.c | 3 +-- src/listener.c | 3 +-- src/mux_fcgi.c | 6 ++---- src/mux_h1.c | 3 +-- src/mux_h2.c | 6 ++---- src/mux_pt.c | 3 +-- src/mux_quic.c | 3 +-- src/quic_conn.c | 6 ++---- src/stconn.c | 6 ++---- 9 files changed, 13 insertions(+), 26 deletions(-) diff --git a/src/event_hdl.c b/src/event_hdl.c index 7bf0f16..5637741 100644 --- a/src/event_hdl.c +++ b/src/event_hdl.c @@ -568,8 +568,7 @@ struct event_hdl_sub *event_hdl_subscribe_ptr(event_hdl_sub_list *sub_list, cleanup: if (new_sub) { if (hdl.async == EVENT_HDL_ASYNC_MODE_NORMAL) { - if (new_sub->hdl.async_task) - tasklet_free(new_sub->hdl.async_task); + tasklet_free(new_sub->hdl.async_task); if (task_ctx) pool_free(pool_head_sub_taskctx, task_ctx); } diff --git a/src/listener.c b/src/listener.c index a68cb12..6a0460f 100644 --- a/src/listener.c +++ b/src/listener.c @@ -201,8 +201,7 @@ static void accept_queue_deinit() int i; for (i = 0; i < global.nbthread; i++) { - if (accept_queue_rings[i].tasklet) - tasklet_free(accept_queue_rings[i].tasklet); + tasklet_free(accept_queue_rings[i].tasklet); } } diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c index 0fb4f86..5ccf2ae 100644 --- a/src/mux_fcgi.c +++ b/src/mux_fcgi.c @@ -707,8 +707,7 @@ static int fcgi_init(struct connection *conn, struct proxy *px, struct session * fail: task_destroy(t); - if (fconn->wait_event.tasklet) - tasklet_free(fconn->wait_event.tasklet); + tasklet_free(fconn->wait_event.tasklet); pool_free(pool_head_fcgi_conn, fconn); fail_conn: conn->ctx = conn_ctx; // restore saved ctx @@ -766,8 +765,7 @@ static void fcgi_release(struct fcgi_conn *fconn) task_wakeup(fconn->task, TASK_WOKEN_OTHER); fconn->task = NULL; } - if (fconn->wait_event.tasklet) - tasklet_free(fconn->wait_event.tasklet); + tasklet_free(fconn->wait_event.tasklet); if (conn && fconn->wait_event.events != 0) conn->xprt->unsubscribe(conn, conn->xprt_ctx, fconn->wait_event.events, &fconn->wait_event); diff --git a/src/mux_h1.c b/src/mux_h1.c index 86dc754..a3f7fc0 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -995,8 +995,7 @@ static int h1_init(struct connection *conn, struct proxy *proxy, struct session fail: task_destroy(t); - if (h1c->wait_event.tasklet) - tasklet_free(h1c->wait_event.tasklet); + tasklet_free(h1c->wait_event.tasklet); pool_free(pool_head_h1c, h1c); fail_h1c: if (!conn_is_back(conn)) diff --git a/src/mux_h2.c b/src/mux_h2.c index c6667b3..08e9e8a 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -1077,8 +1077,7 @@ static int h2_init(struct connection *conn, struct proxy *prx, struct session *s hpack_dht_free(h2c->ddht); fail: task_destroy(t); - if (h2c->wait_event.tasklet) - tasklet_free(h2c->wait_event.tasklet); + tasklet_free(h2c->wait_event.tasklet); pool_free(pool_head_h2c, h2c); fail_no_h2c: if (!conn_is_back(conn)) @@ -1140,8 +1139,7 @@ static void h2_release(struct h2c *h2c) task_wakeup(h2c->task, TASK_WOKEN_OTHER); h2c->task = NULL; } - if (h2c->wait_event.tasklet) - tasklet_free(h2c->wait_event.tasklet); + tasklet_free(h2c->wait_event.tasklet); if (conn && h2c->wait_event.events != 0) conn->xprt->unsubscribe(conn, conn->xprt_ctx, h2c->wait_event.events, &h2c->wait_event); diff --git a/src/mux_pt.c b/src/mux_pt.c index 6f83ae4..1e9278a 100644 --- a/src/mux_pt.c +++ b/src/mux_pt.c @@ -331,8 +331,7 @@ static int mux_pt_init(struct connection *conn, struct proxy *prx, struct sessio fail_free_sd: sedesc_free(ctx->sd); fail_free_ctx: - if (ctx->wait_event.tasklet) - tasklet_free(ctx->wait_event.tasklet); + tasklet_free(ctx->wait_event.tasklet); pool_free(pool_head_pt_ctx, ctx); fail: TRACE_DEVEL("leaving in error", PT_EV_CONN_NEW|PT_EV_CONN_END|PT_EV_CONN_ERR); diff --git a/src/mux_quic.c b/src/mux_quic.c index 00b83a1..74e0fc8 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -2170,8 +2170,7 @@ static void qc_release(struct qcc *qcc) qcc->task = NULL; } - if (qcc->wait_event.tasklet) - tasklet_free(qcc->wait_event.tasklet); + tasklet_free(qcc->wait_event.tasklet); if (conn && qcc->wait_event.events) { conn->xprt->unsubscribe(conn, conn->xprt_ctx, qcc->wait_event.events, diff --git a/src/quic_conn.c b/src/quic_conn.c index b474e72..a9ad11e 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -5688,8 +5688,7 @@ void quic_conn_release(struct quic_conn *qc) qc->timer_task = NULL; } - if (qc->wait_event.tasklet) - tasklet_free(qc->wait_event.tasklet); + tasklet_free(qc->wait_event.tasklet); /* remove the connection from receiver cids trees */ free_quic_conn_cids(qc); @@ -8478,8 +8477,7 @@ int qc_set_tid_affinity(struct quic_conn *qc, uint new_tid, struct listener *new err: task_destroy(t1); task_destroy(t2); - if (t3) - tasklet_free(t3); + tasklet_free(t3); TRACE_DEVEL("leaving on error", QUIC_EV_CONN_SET_AFFINITY, qc); return 1; diff --git a/src/stconn.c b/src/stconn.c index 59d2179..8458331 100644 --- a/src/stconn.c +++ b/src/stconn.c @@ -231,8 +231,7 @@ void sc_free(struct stconn *sc) BUG_ON(!sc_ep_test(sc, SE_FL_DETACHED)); sedesc_free(sc->sedesc); } - if (sc->wait_event.tasklet) - tasklet_free(sc->wait_event.tasklet); + tasklet_free(sc->wait_event.tasklet); pool_free(pool_head_connstream, sc); } @@ -417,8 +416,7 @@ static void sc_detach_app(struct stconn **scp) sockaddr_free(&sc->src); sockaddr_free(&sc->dst); - if (sc->wait_event.tasklet) - tasklet_free(sc->wait_event.tasklet); + tasklet_free(sc->wait_event.tasklet); sc->wait_event.tasklet = NULL; sc->wait_event.events = 0; sc_free_cond(scp); -- 1.7.10.4