Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
    npro  
 Modern all-safe Rust Network Protocol library supporting h1, h2, h3, ws, wt sans-IO and with socket IO + tls
git clone https://npro.rs/repo/npro
 
root / src / web / w-comms.c
Author[]Andy Green <andy@warmcat.com> 2026-04-19 19:56 UTC
Committer[]Andy Green <andy@warmcat.com> 2026-04-19 19:59 UTC
Treecdf1eddc9e205084b7c8292c942c67e68e39d098   Raw Patch
 
CID 503243: RESOURCE_LEAK
CID 503243: RESOURCE_LEAK
diff --git a/src/server/s-webops.c b/src/server/s-webops.c index 496ec83..bd665aa 100644 --- a/src/server/s-webops.c +++ b/src/server/s-webops.c @@ -235,6 +235,7 @@ sais_event_reset(struct vhd *vhd, const char *event_uuid) if (ret != SQLITE_OK) { sai_event_db_close(&vhd->sqlite3_cache, &pdb); lwsac_free(&ac); + sqlite3_free(err); if (ret == SQLITE_BUSY) return SAI_DB_RESULT_BUSY; return SAI_DB_RESULT_ERROR; @@ -245,6 +246,7 @@ sais_event_reset(struct vhd *vhd, const char *event_uuid) sai_task_t *t = lws_container_of(p, sai_task_t, list); if (sais_task_clear_build_and_logs(vhd, t->uuid, 0) == SAI_DB_RESULT_BUSY) { sqlite3_exec(pdb, "END TRANSACTION", NULL, NULL, &err); + sqlite3_free(err); sai_event_db_close(&vhd->sqlite3_cache, &pdb); lwsac_free(&ac); return SAI_DB_RESULT_BUSY; @@ -255,6 +257,7 @@ sais_event_reset(struct vhd *vhd, const char *event_uuid) if (ret != SQLITE_OK) { sai_event_db_close(&vhd->sqlite3_cache, &pdb); lwsac_free(&ac); + sqlite3_free(err); if (ret == SQLITE_BUSY) return SAI_DB_RESULT_BUSY; return SAI_DB_RESULT_ERROR; @@ -285,8 +288,10 @@ sais_event_delete(struct vhd *vhd, const char *event_uuid) lws_snprintf(qu, sizeof(qu), "update events set state=%d where uuid='%s'", SAIES_DELETED, esc); ret = sqlite3_exec(vhd->server.pdb, qu, NULL, NULL, &err); if (ret != SQLITE_OK) { - if (ret == SQLITE_BUSY) + if (ret == SQLITE_BUSY) { + sqlite3_free(err); return SAI_DB_RESULT_BUSY; + } lwsl_err("%s: evdel mark uuid %s, sq3 err %s\n", __func__, esc, err); sqlite3_free(err); return SAI_DB_RESULT_ERROR; @@ -364,6 +369,7 @@ sais_plat_reset(struct vhd *vhd, const char *event_uuid, const char *platform) if (ret != SQLITE_OK) { sai_event_db_close(&vhd->sqlite3_cache, &pdb); lwsac_free(&ac); + sqlite3_free(err); if (ret == SQLITE_BUSY) return SAI_DB_RESULT_BUSY; return SAI_DB_RESULT_ERROR; @@ -374,6 +380,7 @@ sais_plat_reset(struct vhd *vhd, const char *event_uuid, const char *platform) sai_task_t *t = lws_container_of(p, sai_task_t, list); if (sais_task_clear_build_and_logs(vhd, t->uuid, 0) == SAI_DB_RESULT_BUSY) { sqlite3_exec(pdb, "END TRANSACTION", NULL, NULL, &err); + sqlite3_free(err); sai_event_db_close(&vhd->sqlite3_cache, &pdb); lwsac_free(&ac); return SAI_DB_RESULT_BUSY; @@ -384,6 +391,7 @@ sais_plat_reset(struct vhd *vhd, const char *event_uuid, const char *platform) if (ret != SQLITE_OK) { sai_event_db_close(&vhd->sqlite3_cache, &pdb); lwsac_free(&ac); + sqlite3_free(err); if (ret == SQLITE_BUSY) return SAI_DB_RESULT_BUSY; return SAI_DB_RESULT_ERROR;
Page fetched 0s ago, creation time: 1ms (vhost etag hits: 0%, cache hits: 0%)