From: Francesco Chemolli Date: Thu, 5 May 2022 06:42:52 +0000 (+0000) Subject: Defensive coding for ESI stackmember (#1033) X-Git-Tag: SQUID_6_0_1~195 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=80098d61d1800fc92def30e354eaaa6c5a5614c1;p=thirdparty%2Fsquid.git Defensive coding for ESI stackmember (#1033) Add initializer for the value union in struct stackmember in ESI Coverity CID 1494364: Uninitialized scalar variable (UNINIT). --- 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 *);