Blob Blame History Raw
From ec6817736968fb4683b9df0bd932c1a86dec0ba8 Mon Sep 17 00:00:00 2001
From: Alexey Tikhonov <atikhono@redhat.com>
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 <ppolawsk@redhat.com>
---
 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