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
This commit is contained in:
Tim Duesterhus 2023-04-22 17:47:32 +02:00 committed by Willy Tarreau
parent 3a8c63d48d
commit b1ec21d259
9 changed files with 13 additions and 26 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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,

View File

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

View File

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