From 80098d61d1800fc92def30e354eaaa6c5a5614c1 Mon Sep 17 00:00:00 2001 From: Francesco Chemolli Date: Thu, 5 May 2022 06:42:52 +0000 Subject: [PATCH] Defensive coding for ESI stackmember (#1033) Add initializer for the value union in struct stackmember in ESI Coverity CID 1494364: Uninitialized scalar variable (UNINIT). --- src/esi/Expression.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/esi/Expression.cc b/src/esi/Expression.cc index 84fd43c604..edf2740e87 100644 --- a/src/esi/Expression.cc +++ b/src/esi/Expression.cc @@ -63,15 +63,16 @@ typedef enum { } literalhint; struct _stackmember { - evaluate *eval; - union { + evaluate *eval = nullptr; + union Value { char *string; double floating; int integral; + Value() { memset(this, 0, sizeof(*this)); } } value; - literalhint valuestored; - evaltype valuetype; - int precedence; + literalhint valuestored = ESI_LITERAL_INVALID; + evaltype valuetype = ESI_EXPR_INVALID; + int precedence = 0; }; static void cleanmember(stackmember *); -- 2.47.3