From ec6817736968fb4683b9df0bd932c1a86dec0ba8 Mon Sep 17 00:00:00 2001 From: Alexey Tikhonov Date: Wed, 4 Aug 2021 19:22:19 +0200 Subject: [PATCH 4/6] INI: fix check for error code In case of fail `asprintf()` returns -1, not 1. Fixes following covscan issues: ``` Error: RESOURCE_LEAK (CWE-772): [#def1] ding-libs-0.6.1/ini/ini_configmod.c:869: alloc_arg: "asprintf" allocates memory that is stored into "strval". [Note: The source code implementation of the function has been overridden by a builtin model.] ding-libs-0.6.1/ini/ini_configmod.c:873: leaked_storage: Variable "strval" going out of scope leaks the storage it points to. # 871| TRACE_ERROR_NUMBER("Asprintf failed.", ret); # 872| /* The main reason is propbaly memory allocation */ # 873|-> return ENOMEM; # 874| } # 875| ``` Reviewed-by: Pawel Polawski --- ini/ini_configmod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ini/ini_configmod.c b/ini/ini_configmod.c index da4175c..88a7133 100644 --- a/ini/ini_configmod.c +++ b/ini/ini_configmod.c @@ -867,7 +867,7 @@ int ini_config_add_double_value(struct ini_cfgobj *ini_config, TRACE_FLOW_ENTRY(); ret = asprintf(&strval, "%f", value); - if (ret == 1) { + if (ret == -1) { TRACE_ERROR_NUMBER("Asprintf failed.", ret); /* The main reason is propbaly memory allocation */ return ENOMEM; -- 2.26.3