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
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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);