From 2f643948f11a4599b81235ceea2d82c89b6b986f Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Mon, 26 Aug 2019 13:15:02 +0200 Subject: [PATCH] ctx: Avoid potential memory leaks reported by clang --- src/libopensc/ctx.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libopensc/ctx.c b/src/libopensc/ctx.c index 2885056d..40f573ed 100644 --- a/src/libopensc/ctx.c +++ b/src/libopensc/ctx.c @@ -826,6 +826,7 @@ int sc_context_create(sc_context_t **ctx_out, const sc_context_param_t *parm) set_defaults(ctx, &opts); if (0 != list_init(&ctx->readers)) { + del_drvs(&opts); sc_release_context(ctx); return SC_ERROR_OUT_OF_MEMORY; } @@ -835,6 +836,7 @@ int sc_context_create(sc_context_t **ctx_out, const sc_context_param_t *parm) ctx->thread_ctx = parm->thread_ctx; r = sc_mutex_create(ctx, &ctx->mutex); if (r != SC_SUCCESS) { + del_drvs(&opts); sc_release_context(ctx); return r; } @@ -861,6 +863,7 @@ int sc_context_create(sc_context_t **ctx_out, const sc_context_param_t *parm) r = ctx->reader_driver->ops->init(ctx); if (r != SC_SUCCESS) { + del_drvs(&opts); sc_release_context(ctx); return r; }