[PATCH 1/2] settings: Fix uninitialised use

Bastien Nocera <[email protected]> Tue, 16 Jun 2026 11:19:29 +0200
Newsgroups dev.linux.lists.ell
Message-ID <[email protected]>
__attribute__(cleanup) variables need to be initialised in situ.

In file included from ell/private.h:8,
                 from ell/settings.c:36:
In function 'auto_free',
    inlined from 'l_settings_set_double' at ell/settings.c:1335:2:
./ell/util.h:265:9: warning: 'buf' may be used uninitialized [-Wmaybe-uninitialized]
  265 |         l_free(*p);
      |         ^~~~~~~~~~
ell/settings.c: In function 'l_settings_set_double':
ell/settings.c:1335:33: note: 'buf' was declared here
 1335 |         L_AUTO_FREE_VAR(char *, buf);
      |                                 ^~~
In function 'auto_free',
    inlined from 'l_settings_set_float' at ell/settings.c:1381:2:
./ell/util.h:265:9: warning: 'buf' may be used uninitialized [-Wmaybe-uninitialized]
  265 |         l_free(*p);
      |         ^~~~~~~~~~
ell/settings.c: In function 'l_settings_set_float':
ell/settings.c:1381:33: note: 'buf' was declared here
 1381 |         L_AUTO_FREE_VAR(char *, buf);
      |                                 ^~~
---
 ell/util.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ell/util.h b/ell/util.h
index e44ec69f8d97..69680e1f168e 100644
--- a/ell/util.h
+++ b/ell/util.h
@@ -236,7 +236,7 @@ static inline void l_put_be64(uint64_t val, void *ptr)
 }
 
 #define L_AUTO_FREE_VAR(vartype,varname) \
-	vartype varname __attribute__((cleanup(auto_free)))
+	vartype varname __attribute__((cleanup(auto_free))) = NULL
 
 #define L_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 
-- 
2.54.0