From 3c0cd73418433c85bc6410f646ac41b2a9720a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 17 Jul 2025 10:45:05 +0200 Subject: [PATCH] Fix uninitialized field in Attr constructor The default constructor for Attr was not initializing the value pointer, which could lead to undefined behavior when the uninitialized pointer is accessed. This was caught by clang-tidy's UninitializedObject check. This fixes the warning: 1 uninitialized field at the end of the constructor call [clang-analyzer-optin.cplusplus.UninitializedObject] --- src/libexpr/include/nix/expr/attr-set.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libexpr/include/nix/expr/attr-set.hh b/src/libexpr/include/nix/expr/attr-set.hh index 283786f4d..c44e8a6b9 100644 --- a/src/libexpr/include/nix/expr/attr-set.hh +++ b/src/libexpr/include/nix/expr/attr-set.hh @@ -23,7 +23,7 @@ struct Attr way we keep Attr size at two words with no wasted space. */ Symbol name; PosIdx pos; - Value * value; + Value * value = nullptr; Attr(Symbol name, Value * value, PosIdx pos = noPos) : name(name), pos(pos), value(value) { }; Attr() { };