From: milan hauth Date: Tue, 28 Jul 2020 15:01:03 +0000 (+0200) Subject: analog: avoid double free in '-O analog' shutdown path X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=588295b8b9cd9b3c7e67ccd3bfd74e05c513c0fb;hp=9dde746023c99a9cd8a34ef7c4b60bad4f78f283 analog: avoid double free in '-O analog' shutdown path Do void the 'def' and 'values' references for '-O analog' module options in the shutdown path, to avoid double free calls. --- diff --git a/src/output/analog.c b/src/output/analog.c index 5c624e05..d665b8ec 100644 --- a/src/output/analog.c +++ b/src/output/analog.c @@ -195,8 +195,14 @@ static int cleanup(struct sr_output *o) ctx = o->priv; g_ptr_array_free(ctx->channellist, 1); - g_variant_unref(options[0].def); - g_slist_free_full(options[0].values, (GDestroyNotify)g_variant_unref); + if (options[0].def) { + g_variant_unref(options[0].def); + options[0].def = NULL; + } + if (options[0].values) { + g_slist_free_full(options[0].values, (GDestroyNotify)g_variant_unref); + options[0].values = NULL; + } g_free(ctx->fdata); g_free(ctx); o->priv = NULL;