[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